Aprende a programar desde cero es una nueva serie de videos que estoy haciendo en mi canal de youtube, los cuales están orientados a todas las personas que no tienen ni idea de programación pero tienen ganas de aprender, es decir, orientado a la gente que no ha estudiado ni ha visto en su vida un código pero le llama la atención el desarrollo de software.
La idea me nació en que tengo la meta de demostrar que cualquier persona en el mundo es capaz de programar.
El curso es sin censura, ya que utilizo mucho lenguaje obsceno y groserías para que de esta manera sea más digerible y entretenido.
Cualquier duda o comentario pueden hacérmelo llegar por medio del formulario de abajo.
Suscríbanse a mi canal de youtube.
¿Cómo ejecutar una consulta SQL directa utilizando entity framework?
Es curioso para mi hacer esta entrada ya que cuando utilizamos un ORM de alguna manera casí nunca es necesario hacer consultas Sql para obtener o modificar datos de la base de datos, pero algunas veces nos es más fácil hacer la consulta ya sea por comodidad o ya sea un caso muy especial. Para no recurrir al famoso SqlCommand y sus derivados Entity Framework nos permite realizar una consulta en crudo de la siguiente manera:
//creamos nuestro objeto context NuestroEntitie db= new NuestroEntitie(); //ExecuteSQLCommand invoca la consulta capturada db.Database.ExecuteSqlCommand("update tabla set campo=1 where id>1000 and fecha>getdate()");
¿Cómo enviar un archivo por Ajax de #jquery?
Para enviar un archivo por medio de Ajax en realidad es muy fácil, sobre todo con la función Ajax de jquery, para ello lo demuestro a continuación:
Primero tenemos el código html siguiente, el cual tiene un formulario con un campo de texto y un input file, es importante que el atributo del form enctype sea multipart/form-data, si no es asi no se enviara el archivo.
<form id="frmFormulario" enctype="multipart/form-data"> <input type="text" name="uncampo"> <input type="file" name="archivo"> <input type="submit" value="Enviar"> </form>
Ahora tenemos que seleccionar(selectores de jquery) el formulario para que haga el envió por Ajax (Ver: ¿Cómo hacer una petición Ajax por medio de submit?) y para ello utilizo el siguiente código en javascript el cual esta comentado a detalle:
$(document).ready(function () { //sobreescribimos el metodo submit para que envie la solicitud por ajax $("#frmFormulario").submit(function (e) { //esto evita que se haga la petición común, es decir evita que se refresque la pagina e.preventDefault(); //ruta la cual recibira nuestro archivo url="@Url.Content("~/Archivo/Recibe")" //FormData es necesario para el envio de archivo, //y de la siguiente manera capturamos todos los elementos del formulario var parametros=new FormData($(this)[0]) //realizamos la petición ajax con la función de jquery $.ajax({ type: "POST", url: url, data: parametros, contentType: false, //importante enviar este parametro en false processData: false, //importante enviar este parametro en false success: function (data) { alert("Se capturo el archivo con éxito") }, error: function (r) { alert("Error del servidor"); } }); }) })
Y este es el trabajo que se hace en el front-end, ahora solo queda hacer el método en el back-end el cual capture el archivo y lo guarde o realice la acción deseada con el fichero; por ejemplo en Mvc.Net seria de la siguiente manera:
//controlador de mvc.net public class Archivo : Controller{ public ActionResult Recibe(string uncampo, HttpPostedFileBase archivo) { //aqui va el codigo que deseemos para manipular el archivo } }
Y así de fácil se envía un archivo por medio de Ajax. Dudas o comentarios pueden hacérmelos llegar y yo les respondo en breve.
¿Cuál es el mejor lenguaje de programación?
Este artículo lo hago para romper muchos dogmas que existen en el área de desarrollo de software. Primero hablare de conceptos básicos y al final daré la conclusión y mi punto de vista. También hablare de lenguaje de programación encasillando: lenguaje de programación, framework, librería, Software-Stack etc.
Siempre los desarrolladores de software creen que los lenguajes que utilizan son los mejores ya que son los que utilizan. También existe el dogma de creer que el lenguaje de programación de moda (véase Ruby en el 2012, véase Mean últimamente) es el lenguaje más potente de todos.
Siempre defenderemos el lenguaje que sabemos utilizar ya que es el que nos da de comer, pero no por ello quiere decir que es el mejor. Los lenguajes de programación son como los colores, un gusto por el verde no lo hace mejor que el azul. O algo más acercado es, los idiomas con los que nos comunicamos, no por estar escrito el Quijote en inglés es mejor que el japonés. Para entender un poco el fin de este artículo, centrémonos en esto último.
Un libro nos cuenta una historia la cual pasa de generación en generación. Esta historia puede ser traducida y no por eso pierde su simbolismo. En los lenguajes de programación se cuentan al igual historias las cuales pueden ser traducidas de un lenguaje a otro (de programación); algo hecho en java del lado del servidor puede ser traducido a node.js o a php, y el lector de la historia (front-end por ejemplo) recibirá el mismo resultado. Aquí vemos un punto clave: la solución del problema es lo que le importa al cliente. Pero también le importa el tiempo en que es escrita la historia.
El tiempo en que se escribe una historia (programa) es parte de por qué nuestra elección sobre un lenguaje de programación nos hace pensar que es el mejor, pues es el que conocemos. Obviamente lo defenderemos a capa y espada. Aquí ya tenemos dos puntos clave: la historia y el tiempo en que esta es escrita, o a su vez, la solución del problema (historia plasmada en libro) y el tiempo de desarrollo (escritura de la historia).
Ahora ya que hablamos de la similitud de libros y programas, hablemos de otros puntos clave. Existen libros que son malos pero cuentan una historia que es entretenida más o menos, y existen libros que son buenos y cuentan una historia que entretiene, divierte, motiva, bueno es una obra de arte. Esto relacionado a los lenguajes de programación es lo siguiente: existen programas que son lentos, mal hechos pero resuelven el problema más o menos, y existen programas que resuelven el problema pero a su vez hace verlo como una obra de arte por su rapidez, y sobre todo la manera que parece que hace magia con el modelo de negocio del cliente. Es aquí el punto más importante: no importa en qué lenguaje de programación hagas las cosas, lo que importa es que hagas bien las cosas.
Otro punto clave es la antigüedad, la mayoría de las veces un lenguaje viejo es un lenguaje obsoleto (yo no veo a nadie escribiendo libros en griego o en hebreo). Pero no siempre es el caso, es mejor decir que un lenguaje es obsoleto cuando no evoluciona (nunca se implementó lambda, no tiene orms, no tiene plugins que hacen el desarrollo más rápido, etc).
Para concluir yo aconsejo que se debe conocer un lenguaje de programación con el cual estés cómodo, y después te hagas experto, más tarde en 1 o 2 años, ve conociendo más lenguajes, esto te ayuda a comparar la forma en que otros lenguajes resuelven lo que tú ya has resuelto, esto lograra que tu abstracción crezca y te ayudara a pensar de manera más ágil. Lo que más importa no es el lenguaje de programación sino la abstracción y creatividad que tengas para resolver las cosas.
Ningún lenguaje de programación es el mejor, sino el cómo tú piensas y resuelves el problema, eso es lo que en realidad importa.
¿Cómo concatenar un TimeSpan a un DateTime en c# .Net?
Por alguna circunstancia tenemos un TimeSpan y un DateTime y requerimos concatenarlos, es decir tenemos un TimeStam con la hora “13:30:00” y tenemos un DateTime con “2016-01-01 00:00:00”. Para ello tenemos que hacerlo de la siguiente forma:
DateTime fecha = DateTime.Parse("2016-01-01"); TimeSpan tiempo = TimeSpan.Parse("13:30:00"); DateTime fechaConcatenada = fecha.Value.Add(tiempo); //fechaConcatenada = 2016-01-01 13:30:00
¿Cómo convertir una imagen de formato RGB a CMYK en c# .Net?
Hace poco termine unos proyectos en los cuales debía manejar la manipulación de imágenes enormes, y me encontré con mucha problemática y poca información, pero gracias a muchas desveladas conseguí el objetivo.
Uno de mis quebraderos de cabeza fue el transformar una imagen de formato RGB a formato CMYK, y hacer de una manera que sea gratuita (ya que encontré algunas empresas que vendían dlls a precios descabellados).
Si van a manipular imágenes enormes, ahórrense martirios y horas de trabajo demás, NO UTILICEN System.Drawing, la misma documentación de Microsoft no recomienda que lo utilices para proyectos con manipulación de imágenes grandes.
Ahora que ya resolví este problema publico este post que a más de uno le servirá, primero vamos a tener que instalar un dll que es gratuito (prácticamente es un wrapper hecho en c++), este magnífico dll se llama Magick.Net. Solo destacare que hay varios dlls con este nombre, lo que los diferencia es que tienen un numero al final, entre sea más elevado el número, se puede trabajar con imágenes mayores, descarguen según les convenga (si utilizaran imágenes enormes les recomiendo que bajen Q16 de 64 bits).
Si no sabes cómo instalar un dll por medio de nuget da clic aquí y te explico con un video como hacerlo.
Una vez que instalamos Magick.Net (otro problema que me encontré es la falta de ejemplos para .Net) vamos a crear la imagen CMYK. Para ellos lo haremos de la siguiente manera:
using(MagickImage image = new MagickImage("miimagenRGB.jpg")){ //lineas magicas que convierten a CMYK image.AddProfile(ColorProfile.SRGB); image.AddProfile(ColorProfile.USWebCoatedSWOP); //y si guardamos nuestra imagen cmyk image.Write("imagenCMYK.jpg"); }
Así de fácil se resuelve un problema en el cual estuve investigando casi por un mes (sorpresas de la vida del programador).
Más adelante iré agregando más artículos sobre esta potente librería.
Código gratis, sistema para gimnasio en C# .Net – Gym Hdeleon
Deseas más funcionalidad, ya salio la nueva versión de este sistema para administrar gimnasios, incluye registro con huella, administración de clases, Soporte para puerta eléctrica, membresias semanales, indice de masa coorporal y más, puedes ver la información aquí.
La descripción del gimnasio ya compilado la hago en el siguiente video:
Si deseas este software en ingles da clic aquí.
No damos soporte de esta versión, ya que es la versión gratuita.
Existe una versión premium con costo con muchísimas más funcionalidades, puedes verla dando clic aquí.
Descargar sistema y código para gimnasio 1.0 GRATIS
IR A TUTORIAL PARA INSTALAR EL SOFTWARE (PARA PERSONAS QUE NO SABEN DE PROGRAMACIÓN)
Cualquier duda no duden en hacérmela en la parte de comentarios.
¿Cómo utilizar nuget en visual studio?
Un tutorial rápido para aprender a utilizar nuget de manera rápida y básica.
Consulta para obtener comentarios de una base de datos en #Mysql – diccionario de datos
Algunas veces es necesario obtener los comentarios ingresados en las columnas en una base de datos (diccionario de datos). Sobre todo cuando llevamos una buena .
Aquí anexo un script que sirve para obtener los comentarios de una base de datos en particular:
select table_name,column_name,data_type,COLUMN_COMMENT from information_schema.columns where table_schema = 'nombreDeLaBD' order by table_name,ordinal_position
Ya solo es cuestión de remplazar «nombreDeLaBd» por tú base de datos y listo.
Corregir el error “in a frame because it set ‘X-Frame-Options’ to ‘SAMEORIGIN’” en #MVC .Net
MVC .Net por defecto no permite que sea visto en un iframe, pero a veces surge la necesidad de que sea visto en un iframe (o en mi caso el hospedaje invocaba un iframe el cual cargaba el sitio, no sé porque diablos así lo hace).
Para permitir que MVC .Net permita ser cargado en un iframe debemos ir al archivo Global.asax.cs y en el método Application_Start() debemos agregar la siguiente línea:
AntiForgeryConfig.SuppressXFrameOptionsHeader = true;
A su vez debemos agregar el namespace: System.Web.Helpers
Con esto se soluciona el problema. Espero les ahorre dolores de cabeza.