lunes, 1 de diciembre de 2014

Herramientas de conocimientos Básicas

Algunas herramientas de conocimiento básicas:

Sass (lenguaje de hojas de estilo)

Sass es un metalenguaje de Hojas de Estilo en Cascada (CSS). 
Sass permite la definición de variables. Las variables comienzan con el signo de dólar ($). La asignación de variables se hace con los dos puntos (:).

Ejemplos[editar]




$blue: #3bbfce


.content-navigation
 border-color: $blue
 color: darken($blue, 9%)



eso se compila y se traduce en:



.content-navigation {
 border-color: #3bbfce;
 color: #2b9eab;
}




CoffeeScript

CoffeeScript es un lenguaje de programación que se compila a JavaScript.
Añade características más sofisticadas, como la comprensión de listas y la coincidencia de patrones. CoffeeScript compila previsiblemente a JavaScript y los programas se pueden escribir por lo general en 1/3 menos de líneas de código sin ningún efecto en el rendimiento ni en el tiempo de ejecución.

Ejemplos[editar]

Un fragmento de código JavaScript común con la biblioteca jQuery es
$(document).ready(function() {
  // Resto del código va aquí...
});
O incluso sólo
$(function() {
  // Resto del código va aquí...
});
En CoffeeScript, la palabra clave function se sustituirá por el símbolo ->, y la sangría se utilizará en lugar de las llaves, como en otros lenguajes "fuera de regla" como Python y Haskell. Además, generalmente cualquier paréntesis se puede omitir. De este modo, el equivalente CoffeeScript del fragmento anterior es
$(document).ready ->
  # Resto del código va aquí...
O
($ document).ready ->
  # Resto del código va aquí...
O simplemente
$ ->
  # Resto del código va aquí...

Lo que hace es haces mas simple la lectura, es un compilador.

--------------------------------------------------------------------------------------------------------------------------
less
less es un visualizador de archivos de texto que funciona en intérpretes de comando.
A diferencia de otros programas similares (como more), less permite una completa navegación por el contenido del archivo, utilizando un mínino de recursos del sistema.

Funcionamiento[editar]

Less no solo puede utilizarse para ver el contenido de archivos, sino que también para navegar por el resultado de otros programas, como por ejemplo: grepsortfiletree, etc.
Las bondades del programa son las siguientes:
  • Navegación completa, con avance/retroceso de página (o línea a línea) y movimiento lateral.
  • Búsqueda de palabras o frases (incluso vía expresiones regulares), con resaltado de resultados.
  • Visualización simultánea de varios archivos.
  • Soporta formato negrita y subrayado de palabras (usado por ejemplo con man).
  • Otras varias características avanzadas como: ver número de líneas, guardar el contenido en un archivo (útil con grep y otros), creación de bookmarks para navegación, etc.
  • Es portable y opera en casi todos los OSWindows (XP/2000/98 etc), DOSLinux y demás Unixes (FreeBSD, Solaris, etc).
Less se configura especificando parámetros de invocación, y aunque no tiene menú se maneja fácilmente por medio de comandos.

La manera de ejecutarlo es:   less [opciones] [archivo...]
----------------------------------------------------------------------------------
Haml (en inglés, “HTML Abstraction Markup Language”) es un lenguaje de marcado ligero que se usa para describir el XHTMLde un documento web sin emplear el código embebido tradicional. Está diseñado para solucionar varios problemas de los motores de plantillas tradicionales y también para ser un lenguaje de marcado tan elegante como sea posible. Haml funciona como reemplazo de sistemas de plantillas de páginas embebidas como PHPRHTML y ASP. Sin embargo, Haml elimina la necesidad de escribir XHTML explícito dentro de la plantilla, por ser en sí una descripción de XHTML, más algo de código para generar contenido dinámico.

Ejemplo[editar]

Nota: este es un simple ejemplo de muestra y puede no reflejar la versión actual del lenguaje.
!!!
%html{ :xmlns => "http://www.w3.org/1999/xhtml", :lang => "en", "xml:lang" => "en"}
  %head
    %title BoBlog
    %meta{"http-equiv" => "Content-Type", :content => "text/html; charset=utf-8"}
    %link{"rel" => "stylesheet", "href" => "main.css", "type" => "text/css"}
  %body
    #header
      %h1 BoBlog
      %h2 Blog de Bob
    #content
      - @entries.each do |entry|
        .entry
          %h3.title= entry.title
          %p.date= entry.posted.strftime("%A %d de %B de %Y")
          %p.body= entry.body
    #footer
      %p
        Copyright © 2012 Bob. Algunos derechos reservados.
El Haml de arriba produce este XHTML:


<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
  <head>
    <title>BoBlog</title>
    <meta content='text/html; charset=utf-8' http-equiv='Content-Type' />
    <link href="/stylesheets/main.css" media="screen" rel="Stylesheet" type="text/css" />
  </head>
  <body>
    <div id='header'>
      <h1>BoBlog</h1>
      <h2>Blog de Bob</h2>
    </div>
    <div id='content'>
      <div class='entry'>
        <h3 class='title'>Halloween</h3>
        <p class='date'>martes 31 de octubre de 2006</p>
        <p class='body'>
          ¡Feliz Halloween, gloriosos lectores! Esta noche iré a una fiesta... estoy muy emocionado.
        </p>
      </div>
      <div class='entry'>
        <h3 class='title'>Nuevo motor de plantillas para Rails</h3>
        <p class='date'>viernes 11 de agosto de  2006</p>
        <p class='body'>
          Acaba de salir un motor de plantillas muy bueno para Ruby on Rails. Se llama Haml.
        </p>
      </div>
    </div>
    <div id='footer'>
      <p>
        Copyright © 2012 Bob. Algunos derechos reservados.
      </p>
    </div>
  </body>
</html>


Gracias a Nando por este aporte para el blog.
Espero que les sirva!
Saludos a todos :D

miércoles, 26 de noviembre de 2014

GIT

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando estas tienen un gran número de archivos de código fuente.

El diseño de Git resulta de la experiencia del diseñador de Linux, Linus Torvalds, manteniendo una enorme cantidad de código distribuida y gestionada por mucha gente, que incide en numerosos detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.

Entre las características más relevantes se encuentran:


  • Fuerte apoyo al desarrollo no lineal, por ende rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.
  • Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local. 
  • Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo que habilita el uso de clientes CVS pre-existentes y módulos IDE para CVS pre-existentes en el acceso de repositorios Git. 
  • Los repositorios Subversion y svk se pueden usar directamente con git-svn. 
  • Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución. 
  • Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone. 
  • Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos. 
  • Los renombrados se trabajan basándose en similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre. 
  • Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.

Comandos básicos

  • git fetch:
Descarga los cambios realizados en el repositorio remoto.
  • git merge :
Impacta en la rama en la que te encuentras parado, los cambios realizados en la rama “nombre_rama”.
  • git pull:
Unifica los comandos fetch y merge en un único comando.
  • git commit -am "":
Confirma los cambios realizados. El “mensaje” generalmente se usa para asociar al commit una breve descripción de los cambios realizados.
  • git push origin :
Sube la rama “nombre_rama” al servidor remoto.
  • git status:
Muestra el estado actual de la rama, como los cambios que hay sin commitear.
  • git add :
Comienza a trackear el archivo “nombre_archivo”.
  • git checkout -b :
Crea una rama a partir de la que te encuentres parado con el nombre “nombre_rama_nueva”, y luego salta sobre la rama nueva, por lo que quedas parado en ésta última.
  • git checkout -t origin/:
Si existe una rama remota de nombre “nombre_rama”, al ejecutar este comando se crea una rama local con el nombre “nombre_rama” para hacer un seguimiento de la rama remota con el mismo nombre.
  • git branch:
Lista todas las ramas locales.
  • git branch -a:
Lista todas las ramas locales y remotas.
  • git branch -d :
Elimina la rama local con el nombre “nombre_rama”.
  • git push origin ::
Elimina la rama remote con el nombre “nombre_rama”.
  • git remote prune origin:
Actualiza tu repositorio remoto en caso que algún otro desarrollador haya eliminado alguna rama remota.
  • git reset --hard HEAD:
Elimina los cambios realizados que aún no se hayan hecho commit.
  • git revert :
Revierte el commit realizado, identificado por el “hash_commit”.

Referencias de wikipedia: http://es.wikipedia.org/wiki/Git

jueves, 26 de junio de 2014

Eliminar una columna foranea

A veces sucede que queremos eliminar una columna pero no sabemos el nombre del constraint, porque nunca lo creamos y SGBD le asigna uno de manera implicita, aqui les dejo el script para solucionar el problema:

// En este ejemplo se pretende eliminar de la tabla GrupoPreguntas la columna IdTipoEvaluacion

declare @default sysname, @sql nvarchar(max)
-- obtener nombre constraint
select @default = name
from sys.default_constraints
where parent_object_id = object_id('[dbo].[GrupoPreguntas]')
AND type = 'D'
AND parent_column_id = (
    select column_id
 from sys.columns
    where object_id = object_id('[dbo].[GrupoPreguntas]')
 and name = 'IdTipoEvaluacion'
)
-- eliminando el default constraint
set @sql = N'alter table TABLE_NAME drop constraint ' + @default
exec sp_executesql @sql
-- ahora se elimina la columna
ALTER TABLE [dbo].[GrupoPreguntas]
DROP COLUMN IdTipoEvaluacion


saludos

miércoles, 28 de agosto de 2013

DataGrid el uso de ItemTemplate y ItemDataBound

En un DataGrid el uso de ItemTemplate y ItemDataBound:

<asp:TemplateColumn HeaderText="Observación Solicitud" ItemStyle-Width="150px">
<ItemTemplate>
<asp:TextBox ID="txtObsSolicitud" runat="server" TextMode="MultiLine"
Width="150px" Text='<%# Eval("Observacion") %>' ReadOnly="True"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="IdUsuario" HeaderText="Id"
Visible="False"></asp:BoundColumn>

En el evento "ItemDataBound":

void entities_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string cantSolicitada = e.Item.Cells[2].Text; // para acceder al dato de una celda

TextBox txtCantidad = ((TextBox)e.Item.Cells[5].FindControl("txtCantidad")); // para acceder a un control
txtCantidad .Text = DataBinder.Eval(e.Item.DataItem, "CantidadAprobada").ToString();


txtCantidad .Attributes.Add("OnKeyPress", "return AcceptNum(event)"); // Eventos de js
txtCantidad .Attributes.Add("OnChange", "return VerificarValor('"+ cantSolicitada +"',this)");

}
}




Saludos.

lunes, 26 de agosto de 2013

Validar solo números con js en TextBoxt


en tu archivo js

function AcceptNum(evt)

{
var nav4 = window.Event ? true : false;

var key = nav4 ? evt.which : evt.keyCode;

return (key <= 13 || (key >= 48 && key <= 57) || key == 44);

}
en tu pagina.aspx.cs en el evento load:

txtNumeros.Attributes.Add("OnKeyPress", "return AcceptNum(event)");

Saludos.

miércoles, 16 de enero de 2013

Recorrer las filas de una tabla con JQUERY

Estimados, para recorrer las filas de una tabla con JQUERY


$('#tblUsuario tr').each(function () {

var pk = $(this).find("td").eq(0).html();
var nombre = $(this).find("td").eq(1).html();
var apellidos = $(this).find("td").eq(3).html();

});



Hay que tener cuidado con la cabecera de la tabla.

Saludos!!!

martes, 15 de enero de 2013

ReportViewer "Height" modificar según el alto de la pantalla del usuario

Para modificar dinamicamente el Height (alto) de un ReportViewer (visor de reportes de asp.net) según el alto de la pantalla del usuario:

<script language="javascript" type="text/javascript">
ResizeReport();

function ResizeReport() {
var viewer = document.getElementById("<%= ReportViewer1.ClientID %>");
var htmlheight = document.documentElement.clientHeight;
viewer.style.height = (htmlheight - 30) + "px";
}

window.onresize = function resize() { ResizeReport(); }
</script>


Saludos!!!!