jueves, 21 de enero de 2010
Conceder permisos de ejecucion a todos los procedimientos almacenados
Como conceder permisos de ejecución en todos los SP. Hacer esto con el administrador de base de datos puede ser muy molesto, si tenemos más de 300 procedimientos almacenados.
Si usted quiere darle permisos de ejecutar a todos los sp de una bases datos pueden utilizar el siguiente script, con este permiso van a tener acceso a todos los sp actuales y nuevos.
use northwind
GO
GRANT EXECUTE TO [cambie_por_su_usuario]
GO
si ustedes quiere darle permisos individuales por store procedure que es mas seguro
se puede crear un pequeño script con la ayuda de una cadena que le da permiso para el nuevo usuario de SQL Server a todos los procedimientos almacenados.
select 'Grant Execute on [' + name + '] to [cambie_por_su_usuario]'
from sysobjects where xtype in ('P')
esto generara un script lo corren y listo.
En base a este codigo se puede jugar por ejemplo el siguiente script le proporciona ver la deficinion de todos los sp
select 'Grant VIEW DEFINITION ON [' + name + '] to [cambie_por_su_usuario]'
from sysobjects where xtype in ('P')
Por ultimo ejemplo como proporcionarle acceso a todas las tablas:
select 'Grant select,insert,update,delete on ' + name + ' [cambie_por_su_usuario]''
from sysobjects where xtype in ('U','V')
aun que esto tambien se puede dar con otro permiso, inseguro pero se puede y con una sola linea.
use mydb
go
exec sp_addrolemember db_datareader, [cambie_por_su_usuario]
go
exec sp_addrolemember db_datawriter , [cambie_por_su_usuario]
go
agradecimientos:
Luis =) Gracias por su punto de vista.
Ver
Si usted quiere darle permisos de ejecutar a todos los sp de una bases datos pueden utilizar el siguiente script, con este permiso van a tener acceso a todos los sp actuales y nuevos.
use northwind
GO
GRANT EXECUTE TO [cambie_por_su_usuario]
GO
si ustedes quiere darle permisos individuales por store procedure que es mas seguro
se puede crear un pequeño script con la ayuda de una cadena que le da permiso para el nuevo usuario de SQL Server a todos los procedimientos almacenados.
select 'Grant Execute on [' + name + '] to [cambie_por_su_usuario]'
from sysobjects where xtype in ('P')
esto generara un script lo corren y listo.
En base a este codigo se puede jugar por ejemplo el siguiente script le proporciona ver la deficinion de todos los sp
select 'Grant VIEW DEFINITION ON [' + name + '] to [cambie_por_su_usuario]'
from sysobjects where xtype in ('P')
Por ultimo ejemplo como proporcionarle acceso a todas las tablas:
select 'Grant select,insert,update,delete on ' + name + ' [cambie_por_su_usuario]''
from sysobjects where xtype in ('U','V')
aun que esto tambien se puede dar con otro permiso, inseguro pero se puede y con una sola linea.
use mydb
go
exec sp_addrolemember db_datareader, [cambie_por_su_usuario]
go
exec sp_addrolemember db_datawriter , [cambie_por_su_usuario]
go
agradecimientos:
Luis =) Gracias por su punto de vista.
domingo, 17 de enero de 2010
backup messenger
Exportar/Copia de seguridad de emoticonos, avatares y guiños MSN
Por lo regular no suelo escribir de este tipo de temas, pero la razón principal por la que cree este blog es para resolver problemas, hace poco me vi en la necesidad de cambiar de computadora y realice una copia de seguridad de casi todo excepto los iconos del Messenger.
Primero debemos de conocer las rutas donde se ubica la carpeta de cada cosa:
En Windows Live Messenger
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\CustomEmoticons
Los avatares y las imágenes personales se encuentran en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\UserTile
Los fondos de pantalla (background) se encuentran en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\Backgrounds
Los avatares animados (Moods, Muggins, Meggos, etc.) están en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\DeluxeDisplayPictures
Los guiños (Winks) están en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\Winks3
Finalmente, los contactos están en la carpeta:
C:\ Users \usuario\Contacts\dirección Hotmail
Exportar Iconos
Vamos hacer un ejemplo de cómo exportar nuestros iconos, basados en Windows 7
1.) Inicio, todos los programas, accesorios , Símbolo del sistema
2.) Crear una carpeta para el backup se puede hacer en modo grafico pero como estamos en la ventana de comandos escriban md c:\backupmsn
3.) Siempre en la ventana de símbolo del sistema entrar a la carpeta donde se encuentas nuestros iconos la repito:
Cd C:\Users\usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\CustomEmoticons
Pueden hacerlo carpeta por carpeta, y recuerden cambiar usuario por su usuario del sistema, y poner su dirección correcta.
4.) Llego el momento del backup, solo escriba lo siguiente en la ventana de comandos
xcopy *.* c:\ backupmsn
5.) Listo Backup terminado, ahora por medio de usb o lo que quieran copien esa carpeta de backupmsn.
Importar Iconos
1.) En la nueva máquina tiene que acceder al Messenger al menos una vez.
2.) Inicio, todos los programas, accesorios , Símbolo del sistema
3.) Escriba lo siguiente: Cd c:\backupmsn
4.)Escriba lo siguiente: xcopy *.* “C:\Users\usuario\Local Settings\Application Data\Microsoft\Messenger\tu dirección hotmail\ObjectStore\CustomEmoticons”
5.) No olvide poner las comillas y reemplazar usuario por el nombre de su usuario.
Ahora vuelva a ingresar al messenger y listo, tendra sus iconos.
Espero que les sirva.
Ver
Por lo regular no suelo escribir de este tipo de temas, pero la razón principal por la que cree este blog es para resolver problemas, hace poco me vi en la necesidad de cambiar de computadora y realice una copia de seguridad de casi todo excepto los iconos del Messenger.
Primero debemos de conocer las rutas donde se ubica la carpeta de cada cosa:
En Windows Live Messenger
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\CustomEmoticons
Los avatares y las imágenes personales se encuentran en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\UserTile
Los fondos de pantalla (background) se encuentran en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\Backgrounds
Los avatares animados (Moods, Muggins, Meggos, etc.) están en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\DeluxeDisplayPictures
Los guiños (Winks) están en la carpeta:
C:\ Users \usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\Winks3
Finalmente, los contactos están en la carpeta:
C:\ Users \usuario\Contacts\dirección Hotmail
Exportar Iconos
Vamos hacer un ejemplo de cómo exportar nuestros iconos, basados en Windows 7
1.) Inicio, todos los programas, accesorios , Símbolo del sistema
2.) Crear una carpeta para el backup se puede hacer en modo grafico pero como estamos en la ventana de comandos escriban md c:\backupmsn
3.) Siempre en la ventana de símbolo del sistema entrar a la carpeta donde se encuentas nuestros iconos la repito:
Cd C:\Users\usuario\Local Settings\Application Data\Microsoft\Messenger\
tu dirección hotmail\ObjectStore\CustomEmoticons
Pueden hacerlo carpeta por carpeta, y recuerden cambiar usuario por su usuario del sistema, y poner su dirección correcta.
4.) Llego el momento del backup, solo escriba lo siguiente en la ventana de comandos
xcopy *.* c:\ backupmsn
5.) Listo Backup terminado, ahora por medio de usb o lo que quieran copien esa carpeta de backupmsn.
Importar Iconos
1.) En la nueva máquina tiene que acceder al Messenger al menos una vez.
2.) Inicio, todos los programas, accesorios , Símbolo del sistema
3.) Escriba lo siguiente: Cd c:\backupmsn
4.)Escriba lo siguiente: xcopy *.* “C:\Users\usuario\Local Settings\Application Data\Microsoft\Messenger\tu dirección hotmail\ObjectStore\CustomEmoticons”
5.) No olvide poner las comillas y reemplazar usuario por el nombre de su usuario.
Ahora vuelva a ingresar al messenger y listo, tendra sus iconos.
Espero que les sirva.
martes, 8 de diciembre de 2009
Que es ADO.NET Entity Framework
Teoría básica:
ADO.NET Entity Framework se ha diseñado para admitir servicios y aplicaciones centradas en datos, y proporciona una plataforma para programación con datos que eleva el nivel de abstracción del nivel lógico relacional al nivel conceptual. Permitiendo a los programadores trabajar con datos en un nivel de abstracción superior, Entity Framework admite código que es independiente de cualquier motor de almacenamiento de datos o esquema relacional determinados.
A continuación veremos un ejemplo de por qué usarlo.
¿Por qué usarlo?
La programación orientada a objetos supone un desafío al interactuar con sistemas de almacenamiento de datos. Las teorías de normalización suelen dividir las tablas, lo que representa un problema usar una serie de código extra, para que los programadores cada vez que necesitamos alcanzar información de otra tabla. Miremos el siguiente ejemplo.

ejemplo.
En el ejemplo se muestra la tabla products y category para alcanzar estas tablas seria de las siguientes formas.
sql
SELECT Products.ProductName, Categories.CategoryID, Categories.CategoryName
FROM Categories INNER JOIN
Products ON Categories.CategoryID = Products.CategoryID
Note que aun no está el código para conectarse a la base de datos ni el DataAdapter y el DataSet.
linq
DataClassesDataContext db = new DataClassesDataContext();
var query = from p in db.Products
join c in db.Categories
on p.CategoryID equals c.CategoryID
select new { p.ProductName, c.CategoryID, c.CategoryName };
GridView1.DataSource = query;
GridView1.DataBind();
Con entities:
NorthwindModel.NorthwindEntities ne = new NorthwindModel.NorthwindEntities();
var products = from p in ne.Products.Include("Categories")
select new { p.ProductName, p.Categories.CategoryName };
GridView1.DataSource = products;
GridView1.DataBind();
Puede notar que es más fácil utilizar Entities cuando nuestra base de datos está normalizada, seguro ustedes han superado este problema simplemente creando una vista o un store procedure sin embargo quiero hacer notar que entities lo hace automáticamente.
Como inicio:
Agregue un nuevo elemento, se mostrara la pantalla siguiente:

Elija Ado .net Entity Data Model y siga el asistente, en el asistente elija las tablas que necesita ahorita seria Product y category. Al terminar se mostrara el siguiente modelo y ya puede usar el código superior.
Ver
ADO.NET Entity Framework se ha diseñado para admitir servicios y aplicaciones centradas en datos, y proporciona una plataforma para programación con datos que eleva el nivel de abstracción del nivel lógico relacional al nivel conceptual. Permitiendo a los programadores trabajar con datos en un nivel de abstracción superior, Entity Framework admite código que es independiente de cualquier motor de almacenamiento de datos o esquema relacional determinados.
A continuación veremos un ejemplo de por qué usarlo.
¿Por qué usarlo?
La programación orientada a objetos supone un desafío al interactuar con sistemas de almacenamiento de datos. Las teorías de normalización suelen dividir las tablas, lo que representa un problema usar una serie de código extra, para que los programadores cada vez que necesitamos alcanzar información de otra tabla. Miremos el siguiente ejemplo.
ejemplo.
En el ejemplo se muestra la tabla products y category para alcanzar estas tablas seria de las siguientes formas.
sql
SELECT Products.ProductName, Categories.CategoryID, Categories.CategoryName
FROM Categories INNER JOIN
Products ON Categories.CategoryID = Products.CategoryID
Note que aun no está el código para conectarse a la base de datos ni el DataAdapter y el DataSet.
linq
DataClassesDataContext db = new DataClassesDataContext();
var query = from p in db.Products
join c in db.Categories
on p.CategoryID equals c.CategoryID
select new { p.ProductName, c.CategoryID, c.CategoryName };
GridView1.DataSource = query;
GridView1.DataBind();
Con entities:
NorthwindModel.NorthwindEntities ne = new NorthwindModel.NorthwindEntities();
var products = from p in ne.Products.Include("Categories")
select new { p.ProductName, p.Categories.CategoryName };
GridView1.DataSource = products;
GridView1.DataBind();
Puede notar que es más fácil utilizar Entities cuando nuestra base de datos está normalizada, seguro ustedes han superado este problema simplemente creando una vista o un store procedure sin embargo quiero hacer notar que entities lo hace automáticamente.
Como inicio:
Agregue un nuevo elemento, se mostrara la pantalla siguiente:
Elija Ado .net Entity Data Model y siga el asistente, en el asistente elija las tablas que necesita ahorita seria Product y category. Al terminar se mostrara el siguiente modelo y ya puede usar el código superior.
jueves, 26 de noviembre de 2009
Sr. Leroy - Chiste
Dos sujetos entran arrastrando a un joven flaco y debilucho a un departamento obscuro, caliente y húmedo.
En el departamento se encontraba Big Leroy, un negro enorme, sudado, hediondo, con cara de gente mala, palillo en la boca y limpiándose las uñas con un cuchillo de carnicero.
Al llegar, uno de los hombres dice: Oye Big Leroy, el jefe ordenó que te cojas a este sujeto... dice, que es para que aprenda a no hacerle al valiente con la gente del barrio.
El debilucho grita desesperado e implora perdón, pero Leroy apenas asiente con la cabeza ignorando los lamentos del joven y dice:
Pueden dejarlo ahí, en ese rincón, que yo me encargo de ese hijo de puta dentro de un momento.
Cuando los dos hombres salen del departamento el muchacho dice:
_Sr. Leroy, por favor, no me haga eso, déjeme ir y le prometo que no le diré a nadie que usted me dejó ir sin castigo. Leroy le dice...'
_Cállate la boca y quédate quieto ahí'.
Al rato llegan los dos hombres arrastrando a otro individuo...
_Big Leroy, el jefe quiere que le cortes las dos piernas y le saques los ojos a este tipo para que aprenda a no llevarse el dinero del jefe.
Leroy les dice:...
_Déjenlo ahí, en ese rincón que pronto resuelvo ese asunto.
Poco tiempo después llegan los mismos hombres arrastrando a un tercer muchacho.
_Big Leroy, el jefe quiere que le cortes el pito a este tipo, para que aprenda a nunca mas meterse con la mujer del jefe, ah!, y dijo también que le cortes la lengua y todos los dedos para que no pueda volver a tocar a otra mujer en su vida.
Leroy, con voz grave dice:...
_Ponlo ahí en el rincón, junto a los otros dos hijos de puta esos y yo atiendo la orden del jefe pronto.
Cuando se retiran los dos hombres, el muchacho que había llegado primero le dice en voz baja a Leroy:
Sr. Leroy, con todo respeto, sólo para que usted no se vaya a confundir, yo soy al que hay que cogerse
Ver
En el departamento se encontraba Big Leroy, un negro enorme, sudado, hediondo, con cara de gente mala, palillo en la boca y limpiándose las uñas con un cuchillo de carnicero.
Al llegar, uno de los hombres dice: Oye Big Leroy, el jefe ordenó que te cojas a este sujeto... dice, que es para que aprenda a no hacerle al valiente con la gente del barrio.
El debilucho grita desesperado e implora perdón, pero Leroy apenas asiente con la cabeza ignorando los lamentos del joven y dice:
Pueden dejarlo ahí, en ese rincón, que yo me encargo de ese hijo de puta dentro de un momento.
Cuando los dos hombres salen del departamento el muchacho dice:
_Sr. Leroy, por favor, no me haga eso, déjeme ir y le prometo que no le diré a nadie que usted me dejó ir sin castigo. Leroy le dice...'
_Cállate la boca y quédate quieto ahí'.
Al rato llegan los dos hombres arrastrando a otro individuo...
_Big Leroy, el jefe quiere que le cortes las dos piernas y le saques los ojos a este tipo para que aprenda a no llevarse el dinero del jefe.
Leroy les dice:...
_Déjenlo ahí, en ese rincón que pronto resuelvo ese asunto.
Poco tiempo después llegan los mismos hombres arrastrando a un tercer muchacho.
_Big Leroy, el jefe quiere que le cortes el pito a este tipo, para que aprenda a nunca mas meterse con la mujer del jefe, ah!, y dijo también que le cortes la lengua y todos los dedos para que no pueda volver a tocar a otra mujer en su vida.
Leroy, con voz grave dice:...
_Ponlo ahí en el rincón, junto a los otros dos hijos de puta esos y yo atiendo la orden del jefe pronto.
Cuando se retiran los dos hombres, el muchacho que había llegado primero le dice en voz baja a Leroy:
Sr. Leroy, con todo respeto, sólo para que usted no se vaya a confundir, yo soy al que hay que cogerse
martes, 24 de noviembre de 2009
Obtener el primer y último día de un mes en SQL Server
declare @d varchar(2),@m varchar(2),@a varchar(4), @FE varchar(50) , @FI varchar(50) , @FN varchar(50),@FcF varchar(50)
--//recupera el dia ctual
set @d=day(getdate())
--//recupera el mes actual
set @m=month(getdate())
--//recupera el año actual
set @a=year(getdate())
--//fecha dada por el sistema
set @FE=@d + '/' + @m + '/' + @a
--//Primer dia del Mes
set @FI='01' + '/' + @m + '/' + @a
--//Ultimo dia del mes
set @FN=dateadd( month,1,@FI) -1
--//Ultimo dia del mes en formato dd/mm/yyyy
set @FcF=cast(day(@FN)as varchar) + '/' + cast(month(@FN)as varchar) + '/' + cast(year(@FN)as varchar)
Print 'Primer dia del Mes==>>' + @FI
Print 'Ultimo dia del Mes==>>' + @FcF
Ver
--//recupera el dia ctual
set @d=day(getdate())
--//recupera el mes actual
set @m=month(getdate())
--//recupera el año actual
set @a=year(getdate())
--//fecha dada por el sistema
set @FE=@d + '/' + @m + '/' + @a
--//Primer dia del Mes
set @FI='01' + '/' + @m + '/' + @a
--//Ultimo dia del mes
set @FN=dateadd( month,1,@FI) -1
--//Ultimo dia del mes en formato dd/mm/yyyy
set @FcF=cast(day(@FN)as varchar) + '/' + cast(month(@FN)as varchar) + '/' + cast(year(@FN)as varchar)
Print 'Primer dia del Mes==>>' + @FI
Print 'Ultimo dia del Mes==>>' + @FcF
martes, 17 de noviembre de 2009
Data Repeater Controls en ASP.NET
El Repeater de ASP.NET es un control contenedor de base que le permite crear listas personalizadas de todos los datos disponibles en la página. Es un control muy útil, sobre todo porque la mayoría de las páginas ASP.NET que muestran datos necesidad de repetir el mismo tipo de datos una y otra vez, es mas rapido que un gridview y puede llegar hacer lo mismo, en algunos casos.
Ejemplo 1
Html
< asp:Repeater runat="server" >
< ItemTemplate >
< %# DataBinder.Eval(Container.DataItem, "orderid") % >
< hr >
< %# DataBinder.Eval(Container.DataItem, "orderdate") % >
< /ItemTemplate >
< SeparatorTemplate >
< br >
< /SeparatorTemplate >
< /asp:Repeater >
code
protected void Page_Load(object sender, EventArgs e)
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM orders",
"server=(local);database=northwind;Integrated Security=SSPI");
DataTable table = new DataTable();
adapter.Fill(table);
Repeater1.DataSource = table;
Repeater1.DataBind();
}
Esto les mostrara ya la información de su tabla, pueden incorporar html con ItemTemplate eso me hace recordar al asp.
Partes del Repeater
< HeaderTemplate > -- se representan la primera y única vez dentro de la producción
< ItemTemplate > -- se repiten para cada registro
< FooterTemplate > -- hizo una vez en la salida
< AlternatingItemTemplate > -- elemento para describir la apariencia de las filas alternas de la producción. En el siguiente ejemplo cada otra fila en la tabla se mostrarán en un color gris claro:

Ejemplo:
< HeaderTemplate >
< table border="1" width="100%" >
< tr>
< th >codigo< /th >
< th >Empresa< /th >
< th >País< /th >
< th >Ciudad< /th >
< th >Direccion< /th >
< th >Codigo Postal< /th >
< /tr >
< /HeaderTemplate >
< ItemTemplate >
< tr>
< td>< %#Container.DataItem("customerid")% >< /td >
< td>< %#Container.DataItem("companyname")% >< /td >
< td>< %#Container.DataItem("country")% >< /td >
< td>< %#Container.DataItem("city")% >< /td >
< td>< %#Container.DataItem("address")% >< /td >
< td>< %#Container.DataItem("postalcode")% >< /td >
< /tr >
< /ItemTemplate >
< SeparatorTemplate >
< tr >
< td colspan="6" >< hr / >< /td >
< /tr >
< /SeparatorTemplate >
< FooterTemplate >
< /table >
< /FooterTemplate >
Ver
Ejemplo 1
Html
< asp:Repeater runat="server" >
< ItemTemplate >
< %# DataBinder.Eval(Container.DataItem, "orderid") % >
< hr >
< %# DataBinder.Eval(Container.DataItem, "orderdate") % >
< /ItemTemplate >
< SeparatorTemplate >
< br >
< /SeparatorTemplate >
< /asp:Repeater >
code
protected void Page_Load(object sender, EventArgs e)
{
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM orders",
"server=(local);database=northwind;Integrated Security=SSPI");
DataTable table = new DataTable();
adapter.Fill(table);
Repeater1.DataSource = table;
Repeater1.DataBind();
}
Esto les mostrara ya la información de su tabla, pueden incorporar html con ItemTemplate eso me hace recordar al asp.
Partes del Repeater
< HeaderTemplate > -- se representan la primera y única vez dentro de la producción
< ItemTemplate > -- se repiten para cada registro
< FooterTemplate > -- hizo una vez en la salida
< AlternatingItemTemplate > -- elemento para describir la apariencia de las filas alternas de la producción. En el siguiente ejemplo cada otra fila en la tabla se mostrarán en un color gris claro:
Ejemplo:
< HeaderTemplate >
< table border="1" width="100%" >
< tr>
< th >codigo< /th >
< th >Empresa< /th >
< th >País< /th >
< th >Ciudad< /th >
< th >Direccion< /th >
< th >Codigo Postal< /th >
< /tr >
< /HeaderTemplate >
< ItemTemplate >
< tr>
< td>< %#Container.DataItem("customerid")% >< /td >
< td>< %#Container.DataItem("companyname")% >< /td >
< td>< %#Container.DataItem("country")% >< /td >
< td>< %#Container.DataItem("city")% >< /td >
< td>< %#Container.DataItem("address")% >< /td >
< td>< %#Container.DataItem("postalcode")% >< /td >
< /tr >
< /ItemTemplate >
< SeparatorTemplate >
< tr >
< td colspan="6" >< hr / >< /td >
< /tr >
< /SeparatorTemplate >
< FooterTemplate >
< /table >
< /FooterTemplate >
lunes, 9 de noviembre de 2009
Por que la frase de mi blog
Casi siempre escribo artículos o chistes, esta vez les quiero contar el por que del texto en la parte superior del blog, esta basado en la película La Familia Del Futuro, cuando vi esta película estaba pasando un momento complicado y me inspiro mucho.
Al final de la película sale una frase buena de Walt Disney que dice así:
“En este lugar perdemos demasiado tiempo mirando hacia atrás.
Camina hacia el futuro, abriendo nuevas puertas y probando cosas nuevas, se curioso... porque nuestra curiosidad siempre nos conduce por nuevos caminos.”
Espero que la película los inspire como me inspiro a mi a seguir intentado ser mejor cada día.
Video de la película:
Ver
Al final de la película sale una frase buena de Walt Disney que dice así:
“En este lugar perdemos demasiado tiempo mirando hacia atrás.
Camina hacia el futuro, abriendo nuevas puertas y probando cosas nuevas, se curioso... porque nuestra curiosidad siempre nos conduce por nuevos caminos.”
Espero que la película los inspire como me inspiro a mi a seguir intentado ser mejor cada día.
Video de la película:
Suscribirse a:
Entradas (Atom)