viernes, junio 21, 2013
viernes, marzo 08, 2013
miércoles, marzo 06, 2013
La Paradoja de Python (The Python Paradox)
Paul Graham
(Traducción del artículo The Python Paradox de Paul Graham)
Agosto 2004
En una reciente charla dije algo que molestó a mucha gente: que puedes conseguir programadores más listos para trabajar en un proyecto Python que los que podrás conseguir para trabajar en un proyecto en Java.
No quise decir con esto que los programadores de Java son tontos. Quise decir que los programadores de Python son listos. Aprender un nuevo lenguaje tiene mucho trabajo. Y la gente no aprende Python porque les conseguirá un trabajo; lo aprenden porque verdaderamente les gusta programar y no están satisfechos con los lenguajes que ya conocen.
Lo que les hace exactamente la clase de programador que las compañías deberán querer contratar. De ahí que, a falta de un mejor nombre lo que llamaré la paradoja de Python: si una compañía elige escribir su software en un lenguaje relativamente esotérico serán capaces de contratar a mejores programadores, porque atraerán solamente aquellos que se preocuparon lo suficiente de aprenderlo. Y para los programadores la paradoja es incluso más pronunciada: el lenguaje que aprender, si quieres un buen trabajo, es un lenguaje que la gente no aprende simplemente para conseguir un trabajo.
Sólo unas pocas empresas han sido lo suficientemente listas para darse cuenta de esto hasta ahora. Pero hay una especie de selección en marcha aquí también: ellas son exactamente las compañías para las que los programadores les gustaría más trabajar. Google por ejemplo. Cuando anuncian puestos de programación Java también quieren experiencia con Python.
Un amigo mío que conoce casi todos los lenguajes que se usan ampliamente usa Python para la mayoría de sus proyectos. El dice que la razón principal es que le gusta cómo se ve el código fuente. Eso puede parecer un motivo fríolo para elegir un lenguaje en vez de otro. Pero no es tan frívolo como suena: cuando programas pasas más tiempo leyendo código que escribiéndolo. Mueves pedazos de código por ahí de la misma forma que un escultor hace pedazos de arcilla. Así que un lenguaje que hace el código fuente feo vuelve loco a un programador exigente, como una arcilla llena de grumos lo hará con un escultor.
A la mención de código fuente feo la gente pensará por supuesto en Perl. Pero la fealdad superficial de Perl no es el tipo al que me refiero. La fealdad verdadera no es una sintaxis que se ve difícil, sino tener que construir programa a partir de los conceptos equivocados. Perl puede parecer como un personaje de dibujos animados maldiciendo, pero hay casos en los que sobrepasa a Python conceptualmente.
Hasta ahora, de todas formas. Ambos lenguajes son objetivos en movimiento. Pero ellos comparten, junto con Ruby (e Icon, y Joy, y J, y Lisp, y Smalltalk) el hecho de que son creados y usados por gente a la que de verdad le importa la programación. Y ellos tienden a ser los que programan bien.
Fuente | fduran.com
En una reciente charla dije algo que molestó a mucha gente: que puedes conseguir programadores más listos para trabajar en un proyecto Python que los que podrás conseguir para trabajar en un proyecto en Java.
No quise decir con esto que los programadores de Java son tontos. Quise decir que los programadores de Python son listos. Aprender un nuevo lenguaje tiene mucho trabajo. Y la gente no aprende Python porque les conseguirá un trabajo; lo aprenden porque verdaderamente les gusta programar y no están satisfechos con los lenguajes que ya conocen.
Lo que les hace exactamente la clase de programador que las compañías deberán querer contratar. De ahí que, a falta de un mejor nombre lo que llamaré la paradoja de Python: si una compañía elige escribir su software en un lenguaje relativamente esotérico serán capaces de contratar a mejores programadores, porque atraerán solamente aquellos que se preocuparon lo suficiente de aprenderlo. Y para los programadores la paradoja es incluso más pronunciada: el lenguaje que aprender, si quieres un buen trabajo, es un lenguaje que la gente no aprende simplemente para conseguir un trabajo.
Sólo unas pocas empresas han sido lo suficientemente listas para darse cuenta de esto hasta ahora. Pero hay una especie de selección en marcha aquí también: ellas son exactamente las compañías para las que los programadores les gustaría más trabajar. Google por ejemplo. Cuando anuncian puestos de programación Java también quieren experiencia con Python.
Un amigo mío que conoce casi todos los lenguajes que se usan ampliamente usa Python para la mayoría de sus proyectos. El dice que la razón principal es que le gusta cómo se ve el código fuente. Eso puede parecer un motivo fríolo para elegir un lenguaje en vez de otro. Pero no es tan frívolo como suena: cuando programas pasas más tiempo leyendo código que escribiéndolo. Mueves pedazos de código por ahí de la misma forma que un escultor hace pedazos de arcilla. Así que un lenguaje que hace el código fuente feo vuelve loco a un programador exigente, como una arcilla llena de grumos lo hará con un escultor.
A la mención de código fuente feo la gente pensará por supuesto en Perl. Pero la fealdad superficial de Perl no es el tipo al que me refiero. La fealdad verdadera no es una sintaxis que se ve difícil, sino tener que construir programa a partir de los conceptos equivocados. Perl puede parecer como un personaje de dibujos animados maldiciendo, pero hay casos en los que sobrepasa a Python conceptualmente.
Hasta ahora, de todas formas. Ambos lenguajes son objetivos en movimiento. Pero ellos comparten, junto con Ruby (e Icon, y Joy, y J, y Lisp, y Smalltalk) el hecho de que son creados y usados por gente a la que de verdad le importa la programación. Y ellos tienden a ser los que programan bien.
Fuente | fduran.com
lunes, octubre 08, 2012
Curso de Programación en Python [Español]
Se cambiará automaticamente entre los videos, uno a uno entre la lista de reproducción, total 18 videos de Python.
lunes, septiembre 17, 2012
martes, septiembre 11, 2012
¿Cómo quitar el virus que convierte las carpetas en accesos directos en las memorias USB?
La forma de eliminar este virus es algo sencilla, y podrás recuperar tus archivos, lo único que necesitas es:
- El Antimalware Panda USB Vaccine. (Descargar)
Pasos a seguir:
- Instala Panda USB Vaccine en tu equipo
- Abre Panda USB Vaccine y vacuna tu equipo
- Reinicia tu computadora (opcional recomendado)
- Inserta la USB infectada pero no la abras.
- Abre Panda USB Vaccine y vacuna la memoria USB.
- Ve a Inicio | Todos los programas | Accesorios | Símbolo del Sistema
- Escribe los siguientes comandos:
- X: (pulsa enter, donde X es la letra de la unidad de tu memoria USB)
- Ahora escribe:
- Attrib /d /s -r -h -s *.* (pulsa enter)
- (respeta los espacios, mayúsculas y minúsculas)
- del *.lnk (pulsa enter)
- Ahora ve a Equipo (o Mi PC en WinXP) y abre tu memoria USB.
- Si ves carpetas con nombres extraños que no reconoces bórralas.
Lísto!
Espero haya sido de ayuda, Saludos.
martes, julio 31, 2012
SIGGRAPH 2012 :Tenologias emergentes..
Muy interesantes estas nuevas tecnologias enfocadas a lo visual.
miércoles, julio 18, 2012
Agregar DESCRIBE a SQL Server con un Store Procedure
Me vi en la necesidad de usar "Describe" en SQL Server, pero no lo encontré, así que auí esta el Store Procedure que necesitan para tener Describe en su SQL Server.
CREATE proc DESCRIBE @tableName varchar(30)
AS
begin
SET nocount ON
SELECT
column_name,
data_type + ' ' +
(case data_type
when 'char'
then '(' + convert (varchar(6),character_maximum_length) + ')'
when 'varchar'
then '(' + convert (varchar(6),character_maximum_length) + ')'
when 'nchar'
then '(' + convert (varchar(6),character_maximum_length) + ')'
when 'nvarchar'
then '(' + convert (varchar(6),character_maximum_length) + ')'
else ' ' end) AS data_type,
(case is_nullable
when 'No' then 'NOT NULL' else 'NULL' END) AS NULLABLE
FROM information_schema.COLUMNS
WHERE table_name = @tableName
ORDER BY Ordinal_Position ASC
SET nocount off
end
go
/****************************************/
Para ejecutarlo solo basta con hacer:
DESCRIBE 'NOMBRE DE LA TABLA'
CREATE proc DESCRIBE @tableName varchar(30)
AS
begin
SET nocount ON
SELECT
column_name,
data_type + ' ' +
(case data_type
when 'char'
then '(' + convert (varchar(6),character_maximum_length) + ')'
when 'varchar'
then '(' + convert (varchar(6),character_maximum_length) + ')'
when 'nchar'
then '(' + convert (varchar(6),character_maximum_length) + ')'
when 'nvarchar'
then '(' + convert (varchar(6),character_maximum_length) + ')'
else ' ' end) AS data_type,
(case is_nullable
when 'No' then 'NOT NULL' else 'NULL' END) AS NULLABLE
FROM information_schema.COLUMNS
WHERE table_name = @tableName
ORDER BY Ordinal_Position ASC
SET nocount off
end
go
/****************************************/
Para ejecutarlo solo basta con hacer:
DESCRIBE 'NOMBRE DE LA TABLA'
martes, marzo 20, 2012
¿Cómo las ideas simples conducen a descubrimientos científicos?
Adam Savage muestra a través de dos ejemplos espectaculares de profundos descubrimientos científicos que vinieron de métodos sencillos y creativos que nadie podría haber seguido - el cálculo de Eratóstenes de la circunferencia de la Tierra alrededor de 200 aC y la medición Hippolyte Fizeau de la velocidad de la luz en 1849.
Video después del salto-->
sábado, enero 08, 2011
LED cube 8x8x8 demo
Bastante divertido e interesante proyecto de un cubo de Led's:
Si tienes ganas de hacer este proyecto visita este enlace
Si tienes ganas de hacer este proyecto visita este enlace
miércoles, diciembre 22, 2010
Nombres y Descripción de las Tablas del Sistema SAP Business One (SAP B1)
Estas son las tablas de SAP BO y la descripción de cada una de ellas
Nombre Descripción
@BCENOTE Selection Tree Leaf Notes
@BCESETT Copy Express Standard Setting
@BFEXTDBVERSION Extension DB versions
@BOEMAIL BO: Default Email Setttings
@BOEXCEL BO: Default Excel Setttings
@BOOADM BO: Outlook Company Settings
@BOODFS BO: Default Setttings
@BOOSTP BO: Snapshot Templates
@BOQUOT BO: Info for Quot/Setttings
@BOSETTINGS BO: Info for Sync Settings
@BOSTP1 BO: Snapshot Template Queries
@BOSYNCLOG BO: Info for Sync Log/History
@BOWORD BO: Default Word Setttings
@FAMILAS Familas
@MARCA Marca
@SECTOR Sector
@SUBGRUPO Sub Grupo Clientes
AACP Períodos log categoría
AACT Cuenta de mayor – Historial
AAD1 Log extensión administración
AADM Administración: Log
ABO1 Código operación banco externo: Líneas – Log
ABOC Código operación banco externo: Log
ABT1 Código interno de operación bancaria: Cuentas – Log
Nombre Descripción
@BCENOTE Selection Tree Leaf Notes
@BCESETT Copy Express Standard Setting
@BFEXTDBVERSION Extension DB versions
@BOEMAIL BO: Default Email Setttings
@BOEXCEL BO: Default Excel Setttings
@BOOADM BO: Outlook Company Settings
@BOODFS BO: Default Setttings
@BOOSTP BO: Snapshot Templates
@BOQUOT BO: Info for Quot/Setttings
@BOSETTINGS BO: Info for Sync Settings
@BOSTP1 BO: Snapshot Template Queries
@BOSYNCLOG BO: Info for Sync Log/History
@BOWORD BO: Default Word Setttings
@FAMILAS Familas
@MARCA Marca
@SECTOR Sector
@SUBGRUPO Sub Grupo Clientes
AACP Períodos log categoría
AACT Cuenta de mayor – Historial
AAD1 Log extensión administración
AADM Administración: Log
ABO1 Código operación banco externo: Líneas – Log
ABOC Código operación banco externo: Log
ABT1 Código interno de operación bancaria: Cuentas – Log
viernes, octubre 08, 2010
Blender | Software Libre de Animación 3D
Blender es un programa libre que se encuentra a disposición de usuarios Linux/Windows/Mac para realizar animaciones 3D profesionales, hace unos días presentaron un corto animado de 15 minutos llamado Sintel donde muestran las capacidades de dicho software, hoy les muestro dos videos sobre la realización de un comercial sobre un refresco de naranja.
¿Cómo lo realizaron?
Video Terminado
Sin lugar a dudas un gran software para ser gratuito.
-FMX-
¿Cómo lo realizaron?
Video Terminado
Sin lugar a dudas un gran software para ser gratuito.
-FMX-
lunes, mayo 17, 2010
Suscribirse a:
Entradas (Atom)