<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0cGQH47eyp7ImA9WhRUGUU.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844</id><updated>2012-01-30T21:37:01.003-06:00</updated><category term="logging" /><category term="jlex" /><category term="7474" /><category term="control" /><category term="suma" /><category term="derby" /><category term="jk" /><category term="regexp" /><category term="estructura de datos" /><category term="grafo" /><category term="7482" /><category term="electronica" /><category term="simulacion" /><category term="ip" /><category term="compilador" /><category term="3 bits" /><category term="default route" /><category term="74191" /><category term="cup" /><category term="convertir" /><category term="pantalla completa" /><category term="computacion" /><category term="push" /><category term="powershell" /><category term="not" /><category term="gas" /><category term="Synchronized" /><category term="salida estandar" /><category term="c++" /><category term="jpanel" /><category term="grafo dirigido" /><category term="datagridview" /><category term="asincrono" /><category term="gnu assembler" /><category term="4 bits" /><category term="java" /><category term="graphics" /><category term="estatica" /><category term="procedimiento" /><category term="maquina" /><category term="online" /><category term="caída libre" /><category term="7490" /><category term="io" /><category term="ADC" /><category term="substring" /><category term="movil" /><category term="out" /><category term="7485" /><category term="mp3" /><category term="directed graph" /><category term="j2ee" /><category term="elmah" /><category term="Graficar Curvas Superficies Paramétricas" /><category term="compiler" /><category term="trabajo" /><category term="ensamblador" /><category term="down" /><category term="temporizador" /><category term="red" /><category term="JOGL" /><category term="filtro" /><category term="jlist" /><category term="lenguaje" /><category term="resistencia" /><category term="ttl" /><category term="lexical" /><category term="full screen" /><category term="hexadecimal" /><category term="ospf" /><category term="java cup" /><category term="multiplicacion" /><category term="puente H" /><category term="plugin" /><category term="apache batik" /><category term="animation" /><category term="image" /><category term="redes" /><category term="driver" /><category term="resta" /><category term="oracle 10g" /><category term="multiplexor" /><category term="memoria dinamica" /><category term="LL1" /><category term="archivos" /><category term="complemento a dos" /><category term="rizo" /><category term="by hand" /><category term="sqlloader" /><category term="stars" /><category term="matematica" /><category term="multiplexer" /><category term="motor DC" /><category term="motor" /><category term="7476" /><category term="lineas 2d" /><category term="pop" /><category term="print" /><category term="jframe" /><category term="ipc1" /><category term="jscrollbar" /><category term="lex" /><category term="Polares Cardioide Rosas Wolfram Aplha" /><category term="decimal" /><category term="ruta por defecto" /><category term="jtoolbar" /><category term="path" /><category term="tiempo" /><category term="web" /><category term="C" /><category term="file output" /><category term="lenny" /><category term="junit" /><category term="Curvas" /><category term="sqlplus" /><category term="arbol" /><category term="computabilidad" /><category term="pcb" /><category term="vlan" /><category term="css" /><category term="js" /><category term="render" /><category term="java3d" /><category term="pila" /><category term="println" /><category term="Extend" /><category term=".net" /><category term="performance" /><category term="rutas" /><category term="diseño" /><category term="decibilidad" /><category term="virtualbox" /><category term="nasm" /><category term="jre" /><category term="jdk" /><category term="local" /><category term="bases de datos" /><category term="lexema" /><category term="android" /><category term="instalacion" /><category term="svg" /><category term="iconImage" /><category term="3bits" /><category term="Polares" /><category term="hola mundo" /><category term="linguistica" /><category term="Superficies Paramétricas" /><category term="coherencia" /><category term="flip flop" /><category term="dfa" /><category term="javascript" /><category term="center" /><category term="electrónica" /><category term="20q" /><category term="switch" /><category term="guest additions" /><category term="jdeveloper" /><category term="resolucion" /><category term="LR" /><category term="logica" /><category term="factorizar gramatica" /><category term="script" /><category term="windows" /><category term="csv" /><category term="file" /><category term="tablero" /><category term="vector" /><category term="74157" /><category term="arboles" /><category term="deploy" /><category term="debug" /><category term="java layer" /><category term="background image" /><category term="unitarias" /><category term="escaner" /><category term="LALR" /><category term="analizador" /><category term="lexico" /><category term="asm" /><category term="resistor" /><category term="jump" /><category term="static route" /><category term="dekker 1" /><category term="call" /><category term="runtime" /><category term="fps constantes" /><category term="calculadora" /><category term="digital" /><category term="fundamentos" /><category term="compuerta" /><category term="double buffer" /><category term="completitud" /><category term="processing" /><category term="sysadmin" /><category term="Java2D" /><category term="gentoo" /><category term="memoria compartida" /><category term="circuito" /><category term="ruta estatica" /><category term="multisim" /><category term="assembler" /><category term="sintactic" /><category term="nodo" /><category term="applet" /><category term="Inteligencia Artificial" /><category term="ni multisim" /><category term="module" /><category term="mi multisim" /><category term="74283" /><category term="timer" /><category term="sintaxis" /><category term="hostname" /><category term="transistor" /><category term="sistemas operativos" /><category term="scanner" /><category term="system" /><category term="kubuntu 9.04" /><category term="iis" /><category term="jsf" /><category term="XOR" /><category term="host" /><category term="CAD" /><category term="guatexguate" /><category term="gnu/linux" /><category term="modulos" /><category term="juego" /><category term="sincronizacion" /><category term="programacion" /><category term="logica secuencial" /><category term="Wolfram Aplha" /><category term="contador" /><category term="pdf" /><category term="altura" /><category term="ui" /><category term="semaforo" /><category term="context free grammar" /><category term="javac" /><category term="up" /><category term="asp.net" /><category term="network" /><category term="restitucion" /><category term="tree" /><category term="error" /><category term="pruebas" /><category term="centrar" /><category term="temp" /><category term="pasos" /><category term="jtabbedpane" /><category term="system.out.println" /><category term="actionListener" /><category term="borland turbo c" /><category term="automata finito" /><category term="javazoom" /><category term="subrutina" /><category term="animacion" /><category term="shell" /><category term="compilator" /><category term="file input" /><category term="draw" /><category term="ascendente" /><category term="lexer" /><category term="ipc" /><category term="salto incondicional" /><category term="salida" /><category term="pantalla" /><category term="router" /><category term="QT" /><category term="drawing" /><category term="AutoCad" /><category term="compiladores 1" /><category term="sumador" /><category term="thread" /><category term="RIP" /><category term="analizador lexico" /><category term="kernel" /><category term="hoja de calculo" /><category term="alan turing" /><category term="Clever" /><category term="ret" /><category term="Robot" /><category term="7404" /><category term="programar" /><category term="netbeans 6.9" /><category term="cola" /><category term="reloj" /><category term="so" /><category term="jflex" /><category term="rtl" /><category term="swing" /><category term="3d" /><category term="jmp" /><category term="serializacion" /><category term="delay" /><category term="Brain" /><category term="escanner" /><category term="localhost" /><category term="jar" /><category term="binary" /><category term="jtextarea" /><category term="c#" /><category term="test" /><category term="cisco" /><category term="precedencia" /><category term="arbol b" /><category term="componentListener" /><category term="ADC0408" /><category term="and" /><category term="modelacion" /><category term="stepper" /><category term="interprete" /><category term="QT Creator" /><category term="procesos" /><category term="pie" /><category term="threads" /><category term="espera ocupada" /><category term="sincrono" /><category term="dekker" /><category term="bash" /><category term="flip flop D" /><category term="game" /><category term="fibonacci" /><category term="flex" /><category term="oracle" /><category term="follow" /><category term="visual studio" /><category term="Wolfram Alpha" /><category term="Graficar" /><category term="packet tracer" /><category term="handwrite" /><category term="html" /><category term="active render" /><category term="compilar" /><category term="estrellas" /><category term="archivos temporales" /><category term="ruta" /><category term="SQL SERVER" /><category term="nhibernate" /><category term="vsync" /><category term="encuesta" /><category term="datasource" /><category term="java 2d" /><category term="windows server" /><category term="dot" /><category term="graph" /><category term="graphviz" /><category term="analizador sintactico" /><category term="analizer" /><category term="extension de archivo" /><category term="Cardioide" /><category term="dinero" /><category term="address" /><category term="opengl" /><category term="asociatividad" /><category term="debian" /><category term="quitar recursividad por la izquierda" /><category term="kdevelop" /><category term="apache" /><category term="linux" /><category term="matriz ortogonal" /><category term="jbutton" /><category term="direccion" /><category term="74273" /><category term="counter" /><category term="2d" /><category term="scaner" /><category term="jsp" /><category term="seleccion" /><category term="first" /><category term="route" /><category term="QMutex" /><category term="cascada" /><category term="Sql Develoeper" /><category term="lista" /><category term="poligono" /><category term="hello world" /><category term="controles dinamicos" /><category term="secuencial" /><category term="debian gnu/linux" /><category term="rebote" /><category term="lwjgl" /><category term="nlog" /><category term="logico" /><category term="token" /><category term="parser" /><category term="binario" /><title>RDebug</title><subtitle type="html">ejemplos y guías para programar, ensamblador, java, c, c++ etc</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.rdebug.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.rdebug.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>170</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/rdebugblog" /><feedburner:info uri="rdebugblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><feedburner:emailServiceId>rdebugblog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;C0cGQH44fip7ImA9WhRUGUU.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3989248290319569814</id><published>2012-01-30T21:37:00.000-06:00</published><updated>2012-01-30T21:37:01.036-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-30T21:37:01.036-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="jtabbedpane" /><category scheme="http://www.blogger.com/atom/ns#" term="jdeveloper" /><title>Uso basico de JTabbedPane</title><content type="html">&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;&lt;span style="font-size: 13px; white-space: pre-wrap;"&gt;Este ejemplo demuestra como usar un JTabbedPane de forma basica, esto permite crear aplicaciones con pestañas en java utilizando &lt;a href="http://es.wikipedia.org/wiki/Swing_(biblioteca_gr%C3%A1fica)"&gt;swing&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;&lt;span style="font-size: 13px; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/_06vhpA6jox0/SqxNvNLQU0I/AAAAAAAAABk/-MtB86tVRSY/s1600-h/jtabbedpane1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_06vhpA6jox0/SqxNvNLQU0I/AAAAAAAAABk/-MtB86tVRSY/s320/jtabbedpane1.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/_06vhpA6jox0/SqxN0M2RylI/AAAAAAAAABs/uwJadK2PVjU/s1600-h/jtabbedpane2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-decoration: none;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_06vhpA6jox0/SqxN0M2RylI/AAAAAAAAABs/uwJadK2PVjU/s320/jtabbedpane2.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3&gt;
Codigo&lt;br /&gt;
&lt;/h3&gt;
&lt;pre&gt;&lt;div style="background-color: #dddddd;"&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; java.awt.BorderLayout;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; java.awt.Dimension;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; javax.swing.JButton;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; javax.swing.JFrame;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; javax.swing.JLabel;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; javax.swing.JPanel;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; javax.swing.JTabbedPane;&lt;/span&gt;
&lt;span style="color: blue;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt; javax.swing.JTextArea;&lt;/span&gt;

&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;span style="color: black;"&gt; Main &lt;/span&gt;&lt;span style="color: blue;"&gt;extends&lt;/span&gt;&lt;span style="color: black;"&gt; JFrame {&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="color: black;"&gt; Main() {&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;try&lt;/span&gt;&lt;span style="color: black;"&gt; {&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jbInit();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} &lt;span style="color: blue;"&gt;catch&lt;/span&gt;&lt;span style="color: black;"&gt; (Exception e) {&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;private&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;void&lt;/span&gt;&lt;span style="color: black;"&gt; jbInit() &lt;/span&gt;&lt;span style="color: blue;"&gt;throws&lt;/span&gt;&lt;span style="color: black;"&gt; Exception {&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;span style="color: black;"&gt;.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;span style="color: black;"&gt;.getContentPane().setLayout( &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; BorderLayout() );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;span style="color: black;"&gt;.setSize( &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; Dimension(&lt;/span&gt;&lt;span style="color: black;"&gt;400&lt;/span&gt;&lt;span style="color: black;"&gt;, &lt;/span&gt;&lt;span style="color: black;"&gt;300&lt;/span&gt;&lt;span style="color: black;"&gt;) );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;span style="color: black;"&gt;.setTitle( &lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;Test&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt; );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; crear y agregar al formulario&amp;nbsp;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;aqui vamos a crear el JTabbedPane y tres JPanel que
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usaremos como pestañas &lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTabbedPane tabPanel &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JTabbedPane();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; creamos un panel para cada pestaña &lt;/span&gt;&lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel tabA &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JPanel();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabA.setPreferredSize( &lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; Dimension(&lt;/span&gt;&lt;span style="color: black;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;) );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabA.setLayout( &lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; BorderLayout() );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel tabB &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JPanel();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabB.setPreferredSize( &lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; Dimension(&lt;/span&gt;&lt;span style="color: black;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;) );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabB.setLayout( &lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; BorderLayout() );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JPanel tabC &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JPanel();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabC.setPreferredSize( &lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; Dimension(&lt;/span&gt;&lt;span style="color: black;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: black;"&gt;100&lt;/span&gt;&lt;span style="color: black;"&gt;) );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabC.setLayout( &lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; BorderLayout() );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; ahora crear un boton, para la pestaña A &lt;/span&gt;&lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JButton botonTabA &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JButton(&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;Boton&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;); &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabA.add( botonTabA , BorderLayout.CENTER );
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; un label para la pestaña B &lt;/span&gt;&lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JLabel labelTabB &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JLabel();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;labelTabB.setText(&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;Label&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabB.add( labelTabB , BorderLayout.CENTER );
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; un textarea para la pestaña C &lt;/span&gt;&lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;JTextArea textTabC &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; JTextArea();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;textTabC.setText(&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;texto&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabC.add( textTabC , BorderLayout.CENTER );
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; aqui se crean las pestañas a partir de los panels &lt;/span&gt;&lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabPanel.addTab( &lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;Tab A&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt; , tabA );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabPanel.addTab( &lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;Tab B&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt; , tabB );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tabPanel.addTab( &lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt;Tab C&lt;/span&gt;&lt;span style="color: black;"&gt;"&lt;/span&gt;&lt;span style="color: black;"&gt; , tabC );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;/*&lt;/span&gt;&lt;span style="color: green;"&gt; agregar al formulario el componente JTabbedPane &lt;/span&gt;&lt;span style="color: green;"&gt;*/&lt;/span&gt;&lt;span style="color: black;"&gt;&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;this&lt;/span&gt;&lt;span style="color: black;"&gt;.getContentPane().add( tabPanel , BorderLayout.CENTER );&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;}
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;static&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;void&lt;/span&gt;&lt;span style="color: black;"&gt; main(String[] args) {&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Main m &lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;span style="color: black;"&gt; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span style="color: black;"&gt; Main();&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;m.setVisible(&lt;span style="color: blue;"&gt;true&lt;/span&gt;&lt;span style="color: black;"&gt;);&lt;/span&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;}

}
&lt;/div&gt;
&lt;/pre&gt;
&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS';"&gt;&lt;span style="font-size: large; white-space: pre-wrap;"&gt;&lt;a href="http://adf.ly/1khzE"&gt;Descargar Proyecto en JDeveloper 11g&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;ademas&amp;nbsp;las pestañas pueden habilitarse/deshabilitarse con el&amp;nbsp;método&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;setEnabledAt de la clase jTabbedPane&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;&lt;a href="http://download.oracle.com/javase/6/docs/api/javax/swing/JTabbedPane.html#setEnabledAt(int, boolean)"&gt;http://download.oracle.com/javase/6/docs/api/javax/swing/JTabbedPane.html#setEnabledAt(int, boolean)&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #333333; font-family: 'Trebuchet MS'; font-size: small;"&gt;&lt;span style="font-size: 13px; white-space: pre-wrap;"&gt;&lt;span style="color: #888888; font-family: 'Segoe UI'; font-size: 12px; line-height: 15px; white-space: pre;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3989248290319569814?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/N3zDY3UORV393Zyk6nzseRXU12M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N3zDY3UORV393Zyk6nzseRXU12M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/N3zDY3UORV393Zyk6nzseRXU12M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/N3zDY3UORV393Zyk6nzseRXU12M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/jIAZkFg2-lA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3989248290319569814/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2009/09/uso-basico-de-jtabbedpane.html#comment-form" title="5 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3989248290319569814?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3989248290319569814?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/jIAZkFg2-lA/uso-basico-de-jtabbedpane.html" title="Uso basico de JTabbedPane" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_06vhpA6jox0/SqxNvNLQU0I/AAAAAAAAABk/-MtB86tVRSY/s72-c/jtabbedpane1.PNG" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://www.rdebug.com/2009/09/uso-basico-de-jtabbedpane.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4DSXw9eip7ImA9WhRUEE8.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-7274904989818380963</id><published>2012-01-19T20:36:00.000-06:00</published><updated>2012-01-19T20:36:18.262-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T20:36:18.262-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="circuito" /><category scheme="http://www.blogger.com/atom/ns#" term="sumador" /><category scheme="http://www.blogger.com/atom/ns#" term="7482" /><title>Sumar 2 Numeros de 3 Bits con 2 Sumadores Completos 7482</title><content type="html">Este circuito muestra como encadenar dos sumadores completos de 2 bits 7482 para sumar dos&amp;nbsp;números&amp;nbsp;de 3 bits.&lt;br /&gt;
&lt;br /&gt;
El circuito acepta dos&amp;nbsp;números&amp;nbsp;de 3 bits CBA y ZYX.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_06vhpA6jox0/SqcNHAvsP_I/AAAAAAAAABM/1im8P2Xvcpk/s1600-h/sumador_3_bits_con_7482.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_06vhpA6jox0/SqcNHAvsP_I/AAAAAAAAABM/1im8P2Xvcpk/s320/sumador_3_bits_con_7482.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;a href="http://adf.ly/1wdlp"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Diagrama original en NI Multisim 10 descargar&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-7274904989818380963?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oYXxQOx8abu3_IRWCoXQ9Yw5b2A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oYXxQOx8abu3_IRWCoXQ9Yw5b2A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oYXxQOx8abu3_IRWCoXQ9Yw5b2A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oYXxQOx8abu3_IRWCoXQ9Yw5b2A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/VaOuxLdRDtU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/7274904989818380963/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2009/09/sumar-2-numeros-de-3-bits-con-2.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/7274904989818380963?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/7274904989818380963?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/VaOuxLdRDtU/sumar-2-numeros-de-3-bits-con-2.html" title="Sumar 2 Numeros de 3 Bits con 2 Sumadores Completos 7482" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_06vhpA6jox0/SqcNHAvsP_I/AAAAAAAAABM/1im8P2Xvcpk/s72-c/sumador_3_bits_con_7482.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2009/09/sumar-2-numeros-de-3-bits-con-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04CQHkyfyp7ImA9WhRVFko.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3018117566936456273</id><published>2012-01-15T17:59:00.001-06:00</published><updated>2012-01-15T17:59:21.797-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-15T17:59:21.797-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="powershell" /><category scheme="http://www.blogger.com/atom/ns#" term="windows server" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="script" /><title>PowerShell Recorrer Archivos en un Directorio</title><content type="html">Otra de las habilidades que necesitamos a la hora de estar escribiendo scripts, es la de recorrer todos los archivos de un directorio y aplicarles&amp;nbsp;algún&amp;nbsp;tratamiento, en este&amp;nbsp;vídeo&amp;nbsp;vamos a aprender una forma de hacer esto en PowerShell.&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;div style="text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: dimgrey;"&gt;&lt;/span&gt;

Write-Host &lt;span style="color: purple;"&gt;(&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"El Numero de Argumentos es "&lt;/span&gt; + &lt;span style="color: #797997;"&gt;$args.count&lt;/span&gt;&lt;span style="color: purple;"&gt;)&lt;/span&gt;

&lt;span style="color: #797997;"&gt;$directorio&lt;/span&gt; &lt;span style="color: #44aadd;"&gt;=&lt;/span&gt; &lt;span style="color: #797997;"&gt;$args&lt;/span&gt;&lt;span style="color: #808030;"&gt;[&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;0&lt;/span&gt;&lt;span style="color: #808030;"&gt;]&lt;/span&gt;

foreach&lt;span style="color: purple;"&gt;(&lt;/span&gt; &lt;span style="color: #797997;"&gt;$item&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;in&lt;/span&gt; Get-ChildItem &lt;span style="color: #797997;"&gt;$directorio&lt;/span&gt; &lt;span style="color: purple;"&gt;)&lt;/span&gt;
&lt;span style="color: purple;"&gt;{&lt;/span&gt;
    Write-Host &lt;span style="color: #797997;"&gt;$item&lt;/span&gt;
&lt;span style="color: purple;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: purple;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: purple;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/xeTXn9M2yS0" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3018117566936456273?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IJ5MuL1tBUr7gCskdXWv3I7DLmM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IJ5MuL1tBUr7gCskdXWv3I7DLmM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IJ5MuL1tBUr7gCskdXWv3I7DLmM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IJ5MuL1tBUr7gCskdXWv3I7DLmM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/HQoB7p1mBTo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3018117566936456273/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2012/01/powershell-recorrer-archivos-en-un.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3018117566936456273?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3018117566936456273?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/HQoB7p1mBTo/powershell-recorrer-archivos-en-un.html" title="PowerShell Recorrer Archivos en un Directorio" /><author><name>Rudy Alvarez</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-WNLsnt4VHeE/AAAAAAAAAAI/AAAAAAAAATY/tPmcZh-ILqU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/xeTXn9M2yS0/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2012/01/powershell-recorrer-archivos-en-un.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQAQX8-fCp7ImA9WhRVFE8.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-33154971136125844</id><published>2012-01-12T20:05:00.000-06:00</published><updated>2012-01-12T20:05:40.154-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T20:05:40.154-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="powershell" /><category scheme="http://www.blogger.com/atom/ns#" term="windows server" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="script" /><title>PowerShell Variables de Entorno</title><content type="html">Cuando creamos un script muchas veces tenemos la necesidad de hacerlo flexible, que sea capaz de ejecutarse en&amp;nbsp;múltiples&amp;nbsp;equipos, en entornos que no conocemos, no simplemente crear un flujo fijo, en el que cada detalle debe ser parametrizado para que el script sea utilizable.&lt;br /&gt;
&lt;br /&gt;
En el camino de la flexibilidad nos encontramos con una&amp;nbsp;característica que ha estado presente en los sistemas operativos desde el origen de los tiempos, las muy conocidas "&lt;a href="http://es.wikipedia.org/wiki/Variable_de_entorno"&gt;Variables de Entorno&lt;/a&gt;" que vienen a ser algo asi como "Información&amp;nbsp;del Sistema" que esta disponible para ser consultada.&lt;br /&gt;
&lt;br /&gt;
Entre la&amp;nbsp;información&amp;nbsp;que podemos encontrar en las variables de entorno esta la&amp;nbsp;clásica&amp;nbsp;"path", que nos provee una lista de directorios en los cuales el sistema (o interprete de comandos) busca por los archivos ejecutables.&lt;br /&gt;
&lt;br /&gt;
tambien podemos encontrar la variable "temp" que nos provee la ruta de la carpeta para almacenar archivos temporales del sistema, asi como otras menos comunes para averiguar por ejemplo&lt;br /&gt;
&lt;br /&gt;
la arquitectura del cpu&lt;br /&gt;
la&amp;nbsp;versión&amp;nbsp;del sistema operativo&lt;br /&gt;
el nombre del usuario&lt;br /&gt;
el nombre del host&lt;br /&gt;
la carpeta home del usuario actual&lt;br /&gt;
&lt;br /&gt;
en PowerShell podemos acceder a las variables de entorno haciendo uso de la coleccion "$env:nombre_variable" y podemos iterar sobre todas las variables usando "env:", en el video se muestra la salida&amp;nbsp;típica&amp;nbsp;en Windows 7 &amp;nbsp;de 64bits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/HOXAcbSpajs" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-33154971136125844?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KNL3j72D1eCdMS0XonXxXF-cWeA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KNL3j72D1eCdMS0XonXxXF-cWeA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KNL3j72D1eCdMS0XonXxXF-cWeA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KNL3j72D1eCdMS0XonXxXF-cWeA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/U1l6Y24xBRI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/33154971136125844/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2012/01/powershell-variables-de-entorno.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/33154971136125844?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/33154971136125844?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/U1l6Y24xBRI/powershell-variables-de-entorno.html" title="PowerShell Variables de Entorno" /><author><name>Rudy Alvarez</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-WNLsnt4VHeE/AAAAAAAAAAI/AAAAAAAAATY/tPmcZh-ILqU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/HOXAcbSpajs/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2012/01/powershell-variables-de-entorno.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAESXY5fip7ImA9WhRVFEw.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-1820439220820796976</id><published>2012-01-12T19:38:00.000-06:00</published><updated>2012-01-12T19:38:28.826-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T19:38:28.826-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="circuito" /><category scheme="http://www.blogger.com/atom/ns#" term="electronica" /><category scheme="http://www.blogger.com/atom/ns#" term="digital" /><category scheme="http://www.blogger.com/atom/ns#" term="logico" /><title>Compuerta NAND 2 Entradas con Transistores</title><content type="html">Diseño de una compuerta NAND de dos entradas con transistores en NI Multisim 10&lt;br /&gt;
&lt;br /&gt;
básicamente&amp;nbsp;un &lt;a href="http://es.wikipedia.org/wiki/Transistor"&gt;Transistor&lt;/a&gt;&amp;nbsp;es un puente acompañado de una compuerta, es decir es un puente que puede estar "Cerrado" o "Abierto",&amp;nbsp;según&amp;nbsp;este modelo, cuando un transistor se encuentra "Cerrado" los electrones no pueden circular por su interior, por lo que el transistor en ese momento representa un corte en el circuito, es decir "desconectado",&lt;br /&gt;
&lt;br /&gt;
por el contrario cuando el transistor se encuentra abierto, los electrones pueden circular por el transistor, lo que lo convierte&amp;nbsp;básicamente&amp;nbsp;en un trozo de "cable" continuo, es decir un "conductor",&lt;br /&gt;
&lt;br /&gt;
usando este modelo un poco idealizado podemos decir que una compuerta NAND es el resultado de colocar dos "puentes" uno inmediatamente&amp;nbsp;después&amp;nbsp;del otro, y hacer que el control de las "puertas" de dichos puentes sean las entradas de la compuerta NAND, asi que al asociar&lt;br /&gt;
&lt;br /&gt;
1 y 0 a los posibles valores de cada puerta,&lt;br /&gt;
&lt;br /&gt;
1 = permitir paso&lt;br /&gt;
0 = no permitir paso&lt;br /&gt;
&lt;br /&gt;
cuando cualquiera de los transistores esta cerrado (estado 0, no permitir el paso), los electrones no pueden llegar a la resistencia R3, por lo que la lectura en la prueba OUT es positiva, ( 1 activo ) .&lt;br /&gt;
&lt;br /&gt;
en el caso que ambos transistores esten abiertos (estado 1, permitir el paso), entonces los electrones pueden llegar hasta la resistencia R3, haciendo que esta consuma corriente, lo que vuelve el nivel despues de dicha resistencia al logico 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/_06vhpA6jox0/SqGFYqjP3pI/AAAAAAAAAA8/fxk9fZbgdGA/s1600-h/NAND_TRANSISTORES.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_06vhpA6jox0/SqGFYqjP3pI/AAAAAAAAAA8/fxk9fZbgdGA/s320/NAND_TRANSISTORES.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Tabla&lt;/div&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;OUT&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;a href="http://adf.ly/1we7w"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Archivo original en NI Multisim 10 descargar&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-1820439220820796976?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gEE8NCEHj8uM9SBRfUsH_qEhobo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEE8NCEHj8uM9SBRfUsH_qEhobo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gEE8NCEHj8uM9SBRfUsH_qEhobo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gEE8NCEHj8uM9SBRfUsH_qEhobo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/CkwuorkY89k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/1820439220820796976/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2009/09/compuerta-nand-2-entradas-con.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/1820439220820796976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/1820439220820796976?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/CkwuorkY89k/compuerta-nand-2-entradas-con.html" title="Compuerta NAND 2 Entradas con Transistores" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_06vhpA6jox0/SqGFYqjP3pI/AAAAAAAAAA8/fxk9fZbgdGA/s72-c/NAND_TRANSISTORES.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2009/09/compuerta-nand-2-entradas-con.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYER3Y9eyp7ImA9WhRVEkk.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3477245313343544470</id><published>2012-01-10T20:15:00.000-06:00</published><updated>2012-01-10T20:15:06.863-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T20:15:06.863-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="debian gnu/linux" /><category scheme="http://www.blogger.com/atom/ns#" term="script" /><title>Bash, Argumentos en Linea de Comando</title><content type="html">Continuando con las herramientas&amp;nbsp;básicas&amp;nbsp;para escribir scripts en Bash, hoy nos toca aprender a trabajar con argumentos pasados al script.&lt;br /&gt;
&lt;br /&gt;
básicamente disponemos de variables nombradas de forma correlativa $1, $2 ... $n para todos los parametros que el script recibe al momento de ser invocado.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: dimgrey;"&gt;#! &lt;/span&gt;&lt;span style="color: #007997;"&gt;/bin/bash&lt;/span&gt;

&lt;span style="color: dimgrey;"&gt;#argumentos en linea de comando&lt;/span&gt;
&lt;span style="color: dimgrey;"&gt;#los argumentos son nombrados de forma automatica &lt;/span&gt;
&lt;span style="color: dimgrey;"&gt;# $1, $2 ... $n &lt;/span&gt;

&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"el primer argumento es &lt;/span&gt;&lt;span style="color: #797997;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;
&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"creando archivo temporal &lt;/span&gt;&lt;span style="color: #797997;"&gt;$1&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;
touch &lt;span style="color: #797997;"&gt;$1&lt;/span&gt;
&lt;span style="color: #bb7977; font-weight: bold;"&gt;pwd&lt;/span&gt; &lt;span style="color: #e34adc;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #797997;"&gt;$1&lt;/span&gt; 
&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"el segundo parametro es &lt;/span&gt;&lt;span style="color: #797997;"&gt;$2&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;"&lt;/span&gt;
&lt;span style="color: #bb7977; font-weight: bold;"&gt;echo&lt;/span&gt; &lt;span style="color: #797997;"&gt;$2&lt;/span&gt; &lt;span style="color: #e34adc;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #e34adc;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #797997;"&gt;$1&lt;/span&gt; &lt;span style="color: dimgrey;"&gt;# &amp;gt;&amp;gt; es append, &amp;gt; es sobreescribir &lt;/span&gt;
&lt;span style="color: dimgrey;"&gt;#pwd nos devuelve el directorio de trabajo (directorio actual)&lt;/span&gt;
&lt;/pre&gt;
&lt;br /&gt;
el vídeo para los que quieran ver como funciona,&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&amp;nbsp; 

&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/-Z8folSg6gY" width="420"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3477245313343544470?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4LaxslDcbFlI8HFZ8PohZ7Nifsk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4LaxslDcbFlI8HFZ8PohZ7Nifsk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4LaxslDcbFlI8HFZ8PohZ7Nifsk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4LaxslDcbFlI8HFZ8PohZ7Nifsk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/ddQ3tpRPn7Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3477245313343544470/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2012/01/bash-argumentos-en-linea-de-comando.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3477245313343544470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3477245313343544470?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/ddQ3tpRPn7Q/bash-argumentos-en-linea-de-comando.html" title="Bash, Argumentos en Linea de Comando" /><author><name>Rudy Alvarez</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-WNLsnt4VHeE/AAAAAAAAAAI/AAAAAAAAATY/tPmcZh-ILqU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/-Z8folSg6gY/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2012/01/bash-argumentos-en-linea-de-comando.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEEBSXgyfCp7ImA9WhRVEkk.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-5649198780286262641</id><published>2012-01-10T18:15:00.007-06:00</published><updated>2012-01-10T19:50:58.694-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T19:50:58.694-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cardioide" /><category scheme="http://www.blogger.com/atom/ns#" term="Polares" /><category scheme="http://www.blogger.com/atom/ns#" term="Wolfram Aplha" /><category scheme="http://www.blogger.com/atom/ns#" term="Polares Cardioide Rosas Wolfram Aplha" /><category scheme="http://www.blogger.com/atom/ns#" term="matematica" /><title>Graficas Polares en Wolfram | Alpha</title><content type="html">&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://2.bp.blogspot.com/-CtyoCVqyiyE/TwznhOPP9qI/AAAAAAAAAKk/owvG4t-aAdY/s1600/Rosa8.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para Seguir explorando la herramienta de Wolfram| Alpha. graficaremos un Cardioide  y una Rosa en coordenadas polares.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;div style="text-align: justify;"&gt;Primero tratemos de definir que son coordenadas polares: un sistema de coordenadas que para  cada punto del plano se necesita 2 valores el angulo (θ) y un radio (r). (distancia entre el polo y el punto)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Cardioide: se una figura que se forma por un punto de una circunferencia que rota sobre el perímetro de otra, los radios de la circunferencias son iguales.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Su ecuación Polar de forma general es:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;r=2a(1+cos(θ)) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;donde &lt;b&gt;a&lt;/b&gt; es el radio de la circunferencia &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;El Cardioide  que graficaremos será&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;r=1+cos(θ)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;su eje mayor es de longitud 2 y esta en el águlo 0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;en Wolfram| Alpha &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;polar plot  1+cos(x) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;este seria el  &lt;a href="http://www.wolframalpha.com/input/?i=polar+plot++1%2Bcos%28x%29"&gt;resultado&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://3.bp.blogspot.com/-R29-c2r0JnI/Twzhd1m1RqI/AAAAAAAAAKY/6s4D_80xOug/s320/Cardioide.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5696175531439244962" style="color: rgb(0, 0, 238); text-decoration: underline; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 217px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Rosas Polares:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;son curvas en polares que tiene forma de rosas&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;su ecuación general viene dada por:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;r=a cos(kθ+φ)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;donde &lt;b&gt;a&lt;/b&gt; es la longitud de los petalos &lt;b&gt;k&lt;/b&gt; el numero de petalos (k impar,  k numero de petalos ; k par, 2 k numero de petalos) y el &lt;b&gt;φ&lt;/b&gt; es la rotación de la rosa.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;la rosa que graficaremos será:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;r=3 cos(4*φ-π/2)= 3sin(4φ)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;una rosa con 8 pétalos y la longitud de 3 &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;en Wolfram| Alpha&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;polar plot  3sin(4*x)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;el &lt;a href="http://www.wolframalpha.com/input/?i=polar+plot++3sin%284*x%29"&gt;resultado&lt;/a&gt;:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="http://2.bp.blogspot.com/-CtyoCVqyiyE/TwznhOPP9qI/AAAAAAAAAKk/owvG4t-aAdY/s320/Rosa8.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5696182186660591266" style="color: rgb(0, 0, 238); text-decoration: underline; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 245px; " /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-5649198780286262641?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/szGYxJndMD4_q5MAejSPWZI5p80/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/szGYxJndMD4_q5MAejSPWZI5p80/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/szGYxJndMD4_q5MAejSPWZI5p80/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/szGYxJndMD4_q5MAejSPWZI5p80/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/xp5OHBQGC_A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/5649198780286262641/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2012/01/graficas-polares-en-wolfram-alpha.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5649198780286262641?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5649198780286262641?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/xp5OHBQGC_A/graficas-polares-en-wolfram-alpha.html" title="Graficas Polares en Wolfram | Alpha" /><author><name>Eddytrex</name><uri>http://www.blogger.com/profile/10199110981056810107</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_DPubIOn-OPI/Sp0s1bdFg9I/AAAAAAAAAFc/thQ30RbKd4g/S220/pS9J2m450413-02.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-R29-c2r0JnI/Twzhd1m1RqI/AAAAAAAAAKY/6s4D_80xOug/s72-c/Cardioide.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2012/01/graficas-polares-en-wolfram-alpha.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEADQXgycCp7ImA9WhRVEkk.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3600247912692816163</id><published>2012-01-09T18:47:00.011-06:00</published><updated>2012-01-10T19:52:50.698-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T19:52:50.698-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Wolfram Alpha" /><category scheme="http://www.blogger.com/atom/ns#" term="Graficar" /><category scheme="http://www.blogger.com/atom/ns#" term="Superficies Paramétricas" /><category scheme="http://www.blogger.com/atom/ns#" term="Graficar Curvas Superficies Paramétricas" /><category scheme="http://www.blogger.com/atom/ns#" term="Curvas" /><category scheme="http://www.blogger.com/atom/ns#" term="matematica" /><title>Gráfica de Curvas y Superficies Paramétricas en Wolfram|Alpha</title><content type="html">&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Para empezar tratemos de definir que es Wolfram Alpha: &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Wolfram Alpha es un motor de respuestas  en que se puede ingresar cualquier tipo de entradas, en esté caso gráficar curvas y superficies, aunque se pude ingresar cualquier tipo de entradas. Wolfram Alpha tratara  de interpretar la entrada y hacerla coincidir con una serie de respuestas.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;bueno a lo que vamos:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Curvas parametricas &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;vamos graficar una praraboloa  con las siguientes ecuaciones paramétricas: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;x(t)=t&lt;/div&gt;&lt;div&gt;y(t)=t^2&lt;/div&gt;&lt;div&gt;z(t)=1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;la entrada en Wolfram Alpha seria parecida a esta:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;plot parametric {t,t²,1} [t,-5,5]&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;y su &lt;a href="http://www.wolframalpha.com/input/?i=plot+parametric+%7Bt%2Ct%C2%B2%2C1%7D+%5Bt%2C-5%2C5%5D"&gt;salida&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-9_OZDMprU64/TwuapkrT0fI/AAAAAAAAAKM/sPParkDamNU/s1600/Parabola.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-9_OZDMprU64/TwuapkrT0fI/AAAAAAAAAKM/sPParkDamNU/s320/Parabola.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5695816192750768626" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 320px; height: 271px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Superficies Parametricas&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Vamos a graficar un cilindro con eje en Z y radio de 3. Las ecuaciones paramétricas del cilindro son:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;x(t,v)=3*sin(t)&lt;/div&gt;&lt;div&gt;y(t,v)=3*con(t)&lt;/div&gt;&lt;div&gt;z(t,v)=v&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;como se podrán dar cuenta tiene dos parámetros (t,v) los cuales haremos variar  t [0,2π] y t[-5,5]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;la entrada para Wolfram Aplha seria (en esté caso se tendría que ser mas estricto en la notación) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;ParametricPlot3D[{3sin(t),3cos(t),v}, {t, 0, 2 Pi}, {v, 0,  5}] &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;y su &lt;a href="http://www.wolframalpha.com/input/?i=ParametricPlot3D%5B%7B3sin%28t%29%2C3cos%28t%29%2Cv%7D%2C+%7Bt%2C+0%2C+2+Pi%7D%2C+%7Bv%2C+-5%2C++5%7D%5D"&gt;salida&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/-Z91RX3yH6cU/TwuaX0docDI/AAAAAAAAAKA/q4DXtcQKkEA/s1600/Cilindro.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-Z91RX3yH6cU/TwuaX0docDI/AAAAAAAAAKA/q4DXtcQKkEA/s320/Cilindro.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5695815887750721586" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 255px; height: 320px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3600247912692816163?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vENtDUTaT43Ebf7WB-53u0qyneM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vENtDUTaT43Ebf7WB-53u0qyneM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vENtDUTaT43Ebf7WB-53u0qyneM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vENtDUTaT43Ebf7WB-53u0qyneM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/3lwcs68O8F4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3600247912692816163/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2012/01/grafica-de-curvas-y-superficies.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3600247912692816163?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3600247912692816163?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/3lwcs68O8F4/grafica-de-curvas-y-superficies.html" title="Gráfica de Curvas y Superficies Paramétricas en Wolfram|Alpha" /><author><name>Eddytrex</name><uri>http://www.blogger.com/profile/10199110981056810107</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://2.bp.blogspot.com/_DPubIOn-OPI/Sp0s1bdFg9I/AAAAAAAAAFc/thQ30RbKd4g/S220/pS9J2m450413-02.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-9_OZDMprU64/TwuapkrT0fI/AAAAAAAAAKM/sPParkDamNU/s72-c/Parabola.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2012/01/grafica-de-curvas-y-superficies.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkADRHwyfyp7ImA9WhRVEUg.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3573018694178606865</id><published>2012-01-09T18:19:00.000-06:00</published><updated>2012-01-09T18:19:35.297-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-09T18:19:35.297-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="hoja de calculo" /><category scheme="http://www.blogger.com/atom/ns#" term="ipc1" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="borland turbo c" /><title>Hoja de Calculo en C++ DOS (Borland Turbo C)</title><content type="html">&lt;div style="text-align: justify;"&gt;
El primer proyecto que&amp;nbsp;hice&amp;nbsp;en la Universidad, en aquel entonces todo un reto, es una hoja de calculo simple con una cantidad fija de filas y columnas, soporta solamente&amp;nbsp;números&amp;nbsp;enteros, permite establecer formulas en las celdas de forma muy&amp;nbsp;básica,&amp;nbsp;también&amp;nbsp;demuestra el uso del&amp;nbsp;ratón&amp;nbsp;en programas en modo consola y otras funciones&amp;nbsp;básicas&amp;nbsp;como copiar, cortar y pegar celdas, ademas incluye búsqueda&amp;nbsp;y reemplazo de valores.&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/_06vhpA6jox0/SqAC6Ge51CI/AAAAAAAAAAs/KjTMuzM5hm8/s1600-h/hoja_de_calculo1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_06vhpA6jox0/SqAC6Ge51CI/AAAAAAAAAAs/KjTMuzM5hm8/s320/hoja_de_calculo1.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_06vhpA6jox0/SqAC-zMcgXI/AAAAAAAAAA0/Gkrm_Niza5c/s1600-h/hoja_de_calculo2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_06vhpA6jox0/SqAC-zMcgXI/AAAAAAAAAA0/Gkrm_Niza5c/s320/hoja_de_calculo2.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cAyqqg24nAw?fs=1&amp;amp;hl=es_ES"&gt;
&lt;/param&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;/param&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;/param&gt;
&lt;embed src="http://www.youtube.com/v/cAyqqg24nAw?fs=1&amp;amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://adf.ly/1ohha"&gt;Descargar código&amp;nbsp;fuente&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
Este proyecto fue realizado como parte del curso&amp;nbsp;Introducción&amp;nbsp;a la&amp;nbsp;Programación&amp;nbsp;y&amp;nbsp;Computación&amp;nbsp;1 de la carrera de&amp;nbsp;Ingeniería&amp;nbsp;en Ciencias y Sistemas de la Universidad de San Carlos de Guatemala.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3573018694178606865?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-iSUV2w-3c6t6YK1iFNhzBb8kgg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-iSUV2w-3c6t6YK1iFNhzBb8kgg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-iSUV2w-3c6t6YK1iFNhzBb8kgg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-iSUV2w-3c6t6YK1iFNhzBb8kgg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/66Yd8fZMCi8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3573018694178606865/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2009/09/hoja-de-calculo-en-c-borland-turbo-c.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3573018694178606865?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3573018694178606865?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/66Yd8fZMCi8/hoja-de-calculo-en-c-borland-turbo-c.html" title="Hoja de Calculo en C++ DOS (Borland Turbo C)" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_06vhpA6jox0/SqAC6Ge51CI/AAAAAAAAAAs/KjTMuzM5hm8/s72-c/hoja_de_calculo1.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2009/09/hoja-de-calculo-en-c-borland-turbo-c.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4EQns4eCp7ImA9WhRVEE0.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-5175038580267760452</id><published>2012-01-07T23:35:00.000-06:00</published><updated>2012-01-07T23:35:03.530-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-07T23:35:03.530-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="bash" /><category scheme="http://www.blogger.com/atom/ns#" term="sysadmin" /><category scheme="http://www.blogger.com/atom/ns#" term="script" /><title>Bash, Procesar Archivo Linea por Linea</title><content type="html">Tarde o temprano una tarea simple que se vuelve repetitiva tiende a volverse una molestia, por lo que normalmente nos enfrentamos a la necesidad de automatizarlas usando scripts, en este post vamos a tratar un caso muy simple, queremos ejecutar un comando usando como&amp;nbsp;parámetro cada linea de un archivo de&amp;nbsp;configuración&amp;nbsp;(una forma muy&amp;nbsp;básica&amp;nbsp;y primitiva de parametrizacion)&lt;br /&gt;
&lt;br /&gt;
básicamente&amp;nbsp;vamos a abrir un archivo, iterar sobre cada linea y aplicar "echo" para mostrar esa linea en la consola.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: dimgrey;"&gt;#! &lt;/span&gt;&lt;span style="color: #007997;"&gt;/bin/bash&lt;/span&gt;
&lt;span style="color: maroon; font-weight: bold;"&gt;while&lt;/span&gt; &lt;span style="color: #bb7977; font-weight: bold;"&gt;read&lt;/span&gt; line
&lt;span style="color: maroon; font-weight: bold;"&gt;do&lt;/span&gt;
   touch &lt;span style="color: #797997;"&gt;$line&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;".txt"&lt;/span&gt;
&lt;span style="color: maroon; font-weight: bold;"&gt;done&lt;/span&gt; &lt;span style="color: #e34adc;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000e6;"&gt;"config.cfg"&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;span style="color: #0000e6;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;span style="color: #0000e6;"&gt;
&lt;/span&gt;&lt;/pre&gt;
entre las consideraciones&amp;nbsp;están&lt;br /&gt;
&lt;br /&gt;
1) crear el archivo de&amp;nbsp;configuración&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
touch config.cfg
&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;echo -e "line1\nline2\nline3" &amp;gt; config.cfg&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;cat config.cfg&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
con el comando cat deberiamos de ver la siguiente salida
&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;line1
line2
line3
&lt;/pre&gt;
&lt;br /&gt;
2) crear el script para procesar el archivo de configuracion&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;nano script.sh&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
Agregar lo siguiente&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;#! /bin/bash&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;while read line&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;do&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;touch $line".txt"&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;done &amp;lt; "config.cfg"&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
3) guardar ( CTRL + X , luego Y )&lt;br /&gt;
&lt;br /&gt;
4) dar permisos de ejecución&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;code&gt;chmod +x script.sh&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
5) ejecutar 

&lt;code&gt;
./script.sh
&lt;/code&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/uKR16-7VM8I" width="420"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-5175038580267760452?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R9lVRUznf_PKJdRw2WObx7VhD30/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R9lVRUznf_PKJdRw2WObx7VhD30/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R9lVRUznf_PKJdRw2WObx7VhD30/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R9lVRUznf_PKJdRw2WObx7VhD30/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/vkWqKjwyTZ0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/5175038580267760452/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2012/01/bash-procesar-archivo-linea-por-linea.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5175038580267760452?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5175038580267760452?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/vkWqKjwyTZ0/bash-procesar-archivo-linea-por-linea.html" title="Bash, Procesar Archivo Linea por Linea" /><author><name>Rudy Alvarez</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-WNLsnt4VHeE/AAAAAAAAAAI/AAAAAAAAATY/tPmcZh-ILqU/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/uKR16-7VM8I/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2012/01/bash-procesar-archivo-linea-por-linea.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4FRXo-eSp7ImA9WhRXFU8.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-1697556918767177914</id><published>2011-12-21T22:08:00.001-06:00</published><updated>2011-12-21T22:08:34.451-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-21T22:08:34.451-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="powershell" /><category scheme="http://www.blogger.com/atom/ns#" term="windows server" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><title>Borrar Archivos Viejos Script de PowerShell</title><content type="html">Una de las tareas comunes en la&amp;nbsp;administración&amp;nbsp;de servidores es el hecho de tener que realizar de forma&amp;nbsp;periódica&amp;nbsp;un borrado de archivos de Log, de aplicaciones o de servicios como IIS, por ejemplo una politica puede ser "conservar los archivos de log por 6 dias", asi que tenemos que programar una tarea en el servidor para que cada dia (semana, hora, etc) se ejecute la limpieza.&lt;br /&gt;
&lt;br /&gt;
en este post les dejo un script de PowerShell que permite borrar todos los archivos con&amp;nbsp;extensión ".log " en un directorio (y sus subdirectorios), que sean mas viejos que &amp;nbsp;un numero de dias especificado&lt;br /&gt;
&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$pattern&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$args&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;[&lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;0&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;]&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;+&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc3" style="background-color: white; color: grey; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;'\*'&lt;/span&gt;&lt;br /&gt;
&lt;span class="sc0" style="background-color: white; font-family: 'Courier New';"&gt;
&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$files&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc9" style="background-color: white; color: #8000ff; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Get-ChildItem&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$pattern&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;include&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;*.&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;log&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Recurse&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$days&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$args&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;[&lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;2&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;]&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$count&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;0&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;;&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$date&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc9" style="background-color: white; color: #8000ff; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Get-Date&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
&lt;/span&gt;&lt;span class="sc2" style="background-color: white; color: grey; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;"Clean Old IIS Log Files Started $date"&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;|&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc9" style="background-color: white; color: #8000ff; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Out-File&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$args&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;[&lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;1&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;]&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;append&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;noclobber&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; 
&lt;/span&gt;&lt;span class="sc8" style="background-color: white; color: blue; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;if&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;(&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$files&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;.&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;count&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;gt&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;1&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;)&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;{&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
    &lt;/span&gt;&lt;span class="sc8" style="background-color: white; color: blue; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;foreach&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;(&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$file&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc8" style="background-color: white; color: blue; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;in&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$files&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;)&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;{&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
        &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$mark&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;((&lt;/span&gt;&lt;span class="sc9" style="background-color: white; color: #8000ff; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Get-Date&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;)&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$file&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;.&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;CreationTime&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;).&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Days&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
        &lt;/span&gt;&lt;span class="sc8" style="background-color: white; color: blue; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;if&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;(&lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$mark&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;gt&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$days&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;and&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$file&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;.&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;PsISContainer&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;ne&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$True&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;)&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;{&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;            
           &lt;/span&gt;&lt;span class="sc2" style="background-color: white; color: grey; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;"file found $file"&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;|&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc9" style="background-color: white; color: #8000ff; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Out-File&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$args&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;[&lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;1&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;]&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;append&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;noclobber&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; 
           &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$count&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;+=&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;1&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;;&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
           &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$file&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;.&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Delete&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;()&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; 
        &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;}&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
    &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;}&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;}&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;
&lt;/span&gt;&lt;span class="sc2" style="background-color: white; color: grey; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;"Total Deleted Files $count"&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;|&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc9" style="background-color: white; color: #8000ff; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;Out-File&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc5" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;$args&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;[&lt;/span&gt;&lt;span class="sc4" style="background-color: white; color: #ff8000; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;1&lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;]&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;append&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;&lt;span class="sc6" style="background-color: white; color: navy; font-family: 'Courier New'; font-size: 10pt; font-weight: bold; white-space: pre;"&gt;-&lt;/span&gt;&lt;span class="sc7" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;noclobber&lt;/span&gt;&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt; &lt;/span&gt;
&lt;br /&gt;
&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: 10pt; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
la forma de usarlo es la siguiente (con algunas simplificaciones) &amp;nbsp;( borrar todos los archivos con extension .log de la carpeta de &amp;nbsp;logs del IIS, con mas de 30&amp;nbsp;días&amp;nbsp;de antiguedad&lt;br /&gt;
&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: x-small; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="sc0" style="background-color: white; font-family: 'Courier New'; font-size: x-small; white-space: pre;"&gt;powershell -NoProfile -ExecutionPolicy unrestricted -Command "C:\Task\clear_log.ps1 C:\inetpub\logs\LogFiles C:\Task\out.log 30"&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;en out.log se escribe el detalle de los archivos eliminados, la hora de ejecucion y el numero total de archivos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-1697556918767177914?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tnM7XDBjrwLlzaU2rSrvk7lr91U/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tnM7XDBjrwLlzaU2rSrvk7lr91U/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tnM7XDBjrwLlzaU2rSrvk7lr91U/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tnM7XDBjrwLlzaU2rSrvk7lr91U/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/TmvA9tNqORM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/1697556918767177914/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/12/borrar-archivos-viejos-script-de.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/1697556918767177914?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/1697556918767177914?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/TmvA9tNqORM/borrar-archivos-viejos-script-de.html" title="Borrar Archivos Viejos Script de PowerShell" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/12/borrar-archivos-viejos-script-de.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQGQHo9cSp7ImA9WhRXEUk.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-4885887598779928831</id><published>2011-12-17T12:58:00.001-06:00</published><updated>2011-12-17T12:58:41.469-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-17T12:58:41.469-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="regexp" /><category scheme="http://www.blogger.com/atom/ns#" term="file" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><title>C# Extraer Lineas de un Archivo con Expresión Regular</title><content type="html">este pequeño fragmento de&amp;nbsp;código&amp;nbsp;nos permite recorrer un directorio de forma recursiva procesando uno a uno los archivos en dicho directorio para extraer lineas de estos archivos que encajen en una&amp;nbsp;expresión&amp;nbsp;regular definida.&lt;br /&gt;
&lt;br /&gt;
me resulto util para consolidar&amp;nbsp;información&amp;nbsp;de varios archivos de log de IIS, donde ademas tenia que extraer un segmento del texto encajado en la expresion regular (algo asi como /image.aspx/150 y necesitaba los codigos de las imagenes)&lt;br /&gt;
&lt;br /&gt;
&lt;span id="internal-source-marker_0.8673290831502527" style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;         private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;static&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;void&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;Main(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;[]&amp;nbsp;args)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;var&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;salida&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;StreamWriter&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;".\\out.txt"&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;dir&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;"."&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;if&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;(args.Count()&amp;nbsp;&amp;gt;&amp;nbsp;0)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dir&amp;nbsp;=&amp;nbsp;args[0];&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Regex&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;regExp&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Regex&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;@"POST"&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;[]&amp;nbsp;filePaths&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Directory&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;.GetFiles(dir,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;"*.log"&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;SearchOption&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;.AllDirectories);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;foreach&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;file&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;in&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;filePaths)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Console&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;.WriteLine(&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;"file&amp;nbsp;"&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;+&amp;nbsp;file);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;using&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;StreamReader&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;new&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;StreamReader&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;(file))&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;line;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;while&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;((line&amp;nbsp;=&amp;nbsp;r.ReadLine())&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;null&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Match&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;match&amp;nbsp;=&amp;nbsp;regExp.Match(line);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;if&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;(match.Success)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;salida.WriteLine(line);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;salida.Close();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Console&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;.ReadKey();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;
&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="white-space: pre-wrap;"&gt;es una buena plantilla para recorrer varios archivos linea por linea, podemos agregar mas expresiones regulares o hacer otras acciones con las lineas que nos resulten interesantes. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="white-space: pre-wrap;"&gt;una parte muy importante, es como obtener la lista de archivos de un tipo dado en un directorio. &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;string&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;[]&amp;nbsp;filePaths&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;Directory&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;.GetFiles(dir,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;"*.log"&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;SearchOption&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 13px; vertical-align: baseline; white-space: pre-wrap;"&gt;.AllDirectories);&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-4885887598779928831?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/i9jDBJzKUSC3MHzVW0PrXByTRrE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i9jDBJzKUSC3MHzVW0PrXByTRrE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/i9jDBJzKUSC3MHzVW0PrXByTRrE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/i9jDBJzKUSC3MHzVW0PrXByTRrE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/oF44MGeZGVs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/4885887598779928831/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/12/c-extraer-lineas-de-un-archivo-con.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/4885887598779928831?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/4885887598779928831?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/oF44MGeZGVs/c-extraer-lineas-de-un-archivo-con.html" title="C# Extraer Lineas de un Archivo con Expresión Regular" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/12/c-extraer-lineas-de-un-archivo-con.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQEQ30ycCp7ImA9WhRXEEQ.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-70657122306986513</id><published>2011-12-16T23:04:00.000-06:00</published><updated>2011-12-16T23:05:02.398-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-16T23:05:02.398-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="regexp" /><category scheme="http://www.blogger.com/atom/ns#" term="substring" /><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER" /><title>SQL Server SubString y RegExp</title><content type="html">Entre mis tareas diarias me toco realizar un match entre&amp;nbsp;información&amp;nbsp;de diferentes archivos de log, para facilitar un poco el asunto&amp;nbsp;decidí&amp;nbsp;convertir todo a csv y cargarlo en mi instancia local de SQL Server.&lt;br /&gt;
&lt;br /&gt;
algunos de los campos que eran importantes para el proceso que estaba realizando estaban incluidos como&amp;nbsp;parámetros&amp;nbsp;en el QueryString de la request, por lo que me&amp;nbsp;encontré&amp;nbsp;con la necesidad de dividir un string,&amp;nbsp;según&amp;nbsp;un&amp;nbsp;patrón&lt;br /&gt;
&lt;br /&gt;
por decir algo el query string de ejemplo&lt;br /&gt;
&lt;br /&gt;
showMap.aspx?id=123456&amp;amp;source=algo&amp;amp;destination=otracosa&lt;br /&gt;
&lt;br /&gt;
la funcion &lt;a href="http://msdn.microsoft.com/en-us/library/ms188395.aspx"&gt;PATINDEX &lt;/a&gt;del TSQL te permite obtener la posicion de un patron dentro de una cadena y esto combinado con la funcion &lt;a href="http://msdn.microsoft.com/es-es/library/ms187748.aspx"&gt;SUBSTRING&lt;/a&gt;&amp;nbsp;me permitieron tomar solo las partes del campo sin depender de una&amp;nbsp;posición&amp;nbsp;inicial fija, eso si, tuve que depender de una longitud fija, pero con un poco mas de trabajo se puede determinar la&amp;nbsp;posición&amp;nbsp;final&amp;nbsp;también&amp;nbsp;utilizando PATINDEX.&lt;br /&gt;
&lt;br /&gt;
por ejemplo, usando patindex para encontrar la posicion inicial del texto "source=" sumando 7 (que es la longitud de source=), y tomando 5 caracteres que seria la longitud del campo source. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT &amp;nbsp; &amp;nbsp; id,&lt;br /&gt;
substring(cs-uri-query, patindex("source=",cs-uri-query) + 7 ,5) as source&lt;br /&gt;
from logs&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-70657122306986513?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qy1QcAOnLToDBy8cblqfw9hbPYQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qy1QcAOnLToDBy8cblqfw9hbPYQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qy1QcAOnLToDBy8cblqfw9hbPYQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qy1QcAOnLToDBy8cblqfw9hbPYQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/xO7kbdT1HjQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/70657122306986513/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/12/sql-server-determinar-la-posicion-de-un.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/70657122306986513?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/70657122306986513?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/xO7kbdT1HjQ/sql-server-determinar-la-posicion-de-un.html" title="SQL Server SubString y RegExp" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/12/sql-server-determinar-la-posicion-de-un.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8ER3g8eyp7ImA9WhRXEEQ.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-8573263085405422815</id><published>2011-12-16T22:40:00.000-06:00</published><updated>2011-12-16T22:40:06.673-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-16T22:40:06.673-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="windows server" /><category scheme="http://www.blogger.com/atom/ns#" term="iis" /><title>Logs IIS Extraer Request a un Script</title><content type="html">Una de las tareas que tarde o temprano un administrador de servidores Windows tiene que realizar es la de extraer&amp;nbsp;información&amp;nbsp;de los archivos de Log de diferentes servicios, esto puede ser requerido para detectar errores, riesgos de seguridad y otro sin fin de causas,&lt;br /&gt;
&lt;br /&gt;
Si los servidores a tu cargo tienen una cantidad de trafico considerable te pueden encontrar con la sorpresa de tener 80 GB de archivos de Log, perfectamente distribuidos en un archivo diario ( de mas o menos 40 MB ) por lo que la&amp;nbsp;extracción&amp;nbsp;de ciertas request que resultan relevantes puede resultar complicado.&lt;br /&gt;
&lt;br /&gt;
al rescate aparece microsoft con una herramienta poderosa pero poco conocida, pareciera incluso un poco abandonada, sin mucha documentacion, pero justifica la&amp;nbsp;inversión&amp;nbsp;de tiempo para aprender a utilizarla.&lt;br /&gt;
&lt;br /&gt;
LogParser,&amp;nbsp;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=24659"&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=24659&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
básicamente&amp;nbsp;es una herramienta que nos permite ejecutar consultas al estilo SQL, sobre archivos planos (en diferentes formatos, y en general en cualquier origen de datos).&lt;br /&gt;
&lt;br /&gt;
Entre mis primeras experiencias con esta herramienta me toco extraer todas las request en un periodo de tiempo especifico, a un script especifico y que ademas hayan resultado exitosas (status 200)&lt;br /&gt;
&lt;br /&gt;
y la forma de usarlo&lt;br /&gt;
&lt;br /&gt;
necesitamos instalar logparser, agregar la carpeta "bin" a nuestra variable path, para poder invocar logparser en cualquier lugar.&lt;br /&gt;
&lt;br /&gt;
en este caso tenia varios archivos de diferentes instancias y diferentes servers, por lo que recurri a un wildcard para especificar los archivos para analizar (y consolidar)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
logparser "select date, time, to_int( to_string(time,'hh') ) as hour, c-ip, cs-uri-stem, cs-uri-query, cs(User-gent) from u_ex*.log where cs-uri-stem like 'login.aspx' and sc-status=200 and hour &amp;gt; 15 &amp;nbsp;" -o:CSV &amp;gt; output.csv&lt;br /&gt;
&lt;br /&gt;
por supuesto primero seleccione los archivos de log de los&amp;nbsp;días&amp;nbsp;que me interesaba analizar.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-8573263085405422815?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hXQj6pXe-RtImjqRth_t94_q3fs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hXQj6pXe-RtImjqRth_t94_q3fs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hXQj6pXe-RtImjqRth_t94_q3fs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hXQj6pXe-RtImjqRth_t94_q3fs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/qjYwKz_1WVE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/8573263085405422815/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/12/logs-iis-extraer-request-un-script.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/8573263085405422815?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/8573263085405422815?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/qjYwKz_1WVE/logs-iis-extraer-request-un-script.html" title="Logs IIS Extraer Request a un Script" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/12/logs-iis-extraer-request-un-script.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcBSHwzeCp7ImA9WhRREEw.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-518251061883033032</id><published>2011-11-22T18:56:00.001-06:00</published><updated>2011-11-22T19:00:59.280-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-22T19:00:59.280-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nhibernate" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><title>Guardar Milisegundos con NHibernate</title><content type="html">Hoy casualmente en el trabajo nos topamos con un comportamiento un poco extraño en NHibernate, con una propiedad de tipo DateTime, mapeado a un campo DateTime en una base de datos SQL Server, resulto que&amp;nbsp;necesitábamos&amp;nbsp;tener hasta los milisegundos almacenados y el problema es que nhibernate para "compatibilidad" &amp;nbsp;con multiples RDBMS, trunca hasta los segundos, por lo que despues de mucho buscar nos encontramos finalmente con la&amp;nbsp;solución.&lt;br /&gt;
&lt;br /&gt;
agregar en el archivo hbm, donde esta definido el mapeo, el atributo&lt;br /&gt;
&lt;br /&gt;
type="timestamp" a la propiedad.&lt;br /&gt;
&lt;br /&gt;
por ejemplo&lt;br /&gt;
&lt;br /&gt;
&lt;span style="background-color: #f0f0f0; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&amp;lt;property column="CREATION_DATE" name="created" type="timestamp"&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: #f0f0f0; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: #f0f0f0; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: x-small;"&gt;aunque en la base de datos se mantiene DateTime. y en la propiedad del objeto tambien se mantiene DateTime.&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-518251061883033032?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kw8GmFyYCDP54qn7HwMQl_DPBOE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kw8GmFyYCDP54qn7HwMQl_DPBOE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kw8GmFyYCDP54qn7HwMQl_DPBOE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kw8GmFyYCDP54qn7HwMQl_DPBOE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/jDgfCbEVOVE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/518251061883033032/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/11/guardar-milisegundos-con-nhibernate.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/518251061883033032?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/518251061883033032?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/jDgfCbEVOVE/guardar-milisegundos-con-nhibernate.html" title="Guardar Milisegundos con NHibernate" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/11/guardar-milisegundos-con-nhibernate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ABQ3g7fyp7ImA9WhRSFU0.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-466916554559492866</id><published>2011-11-16T21:33:00.001-06:00</published><updated>2011-11-16T21:49:12.607-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T21:49:12.607-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="js" /><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="html" /><title>Cargar JS De Forma Dinamica</title><content type="html">El hecho de&amp;nbsp;minimizar&amp;nbsp;la cantidad de&amp;nbsp;información&amp;nbsp;que necesita transmitirse al usuario la primera vez que carga una pagina web hace mas agradable la experiencia para el usuario, todos hemos pasado por la&amp;nbsp;desesperación&amp;nbsp;de ver una pagina cargarse lentamente y francamente creo que son pocos los que esperan y somos muchos los que simplemente nos cambiamos a la siguiente pagina, en el ambiente tan competitivo que se vive hoy en&amp;nbsp;día&amp;nbsp;en internet, el cual no nos permite darnos el lujo de perder un visitante por un tiempo de respuesta deficiente en nuestras "landing pages"&lt;br /&gt;
&lt;br /&gt;
Lazy Loading tambien conocida como "On Demand Loading" &amp;nbsp;y algunos otros alias, es una idea que se viene manejando en los ORM desde hace tiempo, por ejemplo en una relacion Uno a Muchos, la data del lado de muchos no se carga hasta que efectivamente se intenta acceder a ella, por lo que no se realiza el costoso proceso de cargar todo el detalle, hasta que efectivamente se vuelve inevitable (necesario).&lt;br /&gt;
&lt;br /&gt;
en este post quiero compartir una pequeña&amp;nbsp;librería JavaScript&amp;nbsp;con la que me&amp;nbsp;encontré&amp;nbsp;por curiosidad tratando de ayudar a un compañero del trabajo.&lt;br /&gt;
&lt;br /&gt;
básicamente&amp;nbsp;se trata de cargar archivos javascript solo cuando estos se vuelven necesarios, por ejemplo en paginas donde hay elementos condicionales, que&amp;nbsp;están&amp;nbsp;ocultos y que el usuario puede activar, lo que me agrado de esta&amp;nbsp;librería&amp;nbsp;es que&amp;nbsp;también&amp;nbsp;puede cargar html y css.&lt;br /&gt;
&lt;br /&gt;
demostraciones&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://labs.omaralzabir.com/ensure/"&gt;http://labs.omaralzabir.com/ensure/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
homepage&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ensure.codeplex.com/"&gt;http://ensure.codeplex.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-466916554559492866?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HgNSf1PRKWhRakgqeIg7KAK2VmQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HgNSf1PRKWhRakgqeIg7KAK2VmQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HgNSf1PRKWhRakgqeIg7KAK2VmQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HgNSf1PRKWhRakgqeIg7KAK2VmQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/WyiyoJuedOQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/466916554559492866/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/11/cargar-js-de-forma-dinamica.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/466916554559492866?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/466916554559492866?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/WyiyoJuedOQ/cargar-js-de-forma-dinamica.html" title="Cargar JS De Forma Dinamica" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/11/cargar-js-de-forma-dinamica.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcDQHo_fyp7ImA9WhRTEUo.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-7254487235372946379</id><published>2011-11-01T13:00:00.000-06:00</published><updated>2011-11-01T13:01:11.447-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T13:01:11.447-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><title>C# Performance, Acelerando C#, Tip #1 List.Contains() vs Dictionary.ContainsKey()</title><content type="html">&lt;div style="text-align: justify;"&gt;
Generalmente el rendimiento de una&amp;nbsp;aplicación&amp;nbsp;no se toma en cuenta hasta que este se vuelve inaceptable, es decir, si todo funciona y esta dentro de los limites aceptables, &amp;nbsp;pues nadie se pone a pensar en optimizar nada, por&amp;nbsp;ahí&amp;nbsp;dicen "no&amp;nbsp;optimice&amp;nbsp;demasiado pronto" pero esto no significa "no optimice nunca", para mi la optimización empieza desde el momento en el que se piensa la&amp;nbsp;&lt;span style="background-color: transparent;"&gt;solución, es inaceptable no considerar el rendimiento cuando se planea la forma de implementar una&amp;nbsp;característica.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: transparent;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: transparent;"&gt;Hoy publico uno de los tantos casos con los que me ha tocado optimizar, es muy&amp;nbsp;común&amp;nbsp;y muchas personas no tienen presentes este tipo de consideraciones al decidir que&amp;nbsp;método&amp;nbsp;utilizar, es mas ahora con LINQ y la inferencia de tipos mucha gente se enfoca mas en usar querys LINQ para resolverlo todo, sin ponerse a pensar ni por un momento las implicaciones que esta "maravilla" tienen en el rendimiento final de una&amp;nbsp;aplicación.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: transparent;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: transparent;"&gt;En esta&amp;nbsp;publicación&amp;nbsp;voy a&amp;nbsp;presentar&amp;nbsp;un problema de rendimiento que es bastante evidente para las personas que prestaron 10% de&amp;nbsp;atención&amp;nbsp;a su curso de estructuras de datos, pero que resulta&amp;nbsp;difícil&amp;nbsp;apreciar cuando uno empieza en esto de la&amp;nbsp;programación (todos pasamos por&amp;nbsp;ahí&amp;nbsp;no se preocupen).&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;span style="background-color: transparent;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
ahora vamos a los datos concretos, en este post vamos a analizar el rendimiento de List.Contains() contra el rendimiento de Dictionary.ContainsKey() para esto nos vamos a respaldar de unas cuantas lineas de&amp;nbsp;código&amp;nbsp;para clarificar la diferencia. Este caso concreto usando Strings para los elementos de la&amp;nbsp;colección&amp;nbsp;resulta apreciable la diferencia entre una y otro, resultando en una gran ventaja para el Dictionary.ContainsKey, el ejemplo que acompaño para soportar esta&amp;nbsp;afirmación demuestra una necesidad bastante&amp;nbsp;común&amp;nbsp;cuando uno esta trabajando con colecciones en memoria, esto es seleccionar un grupo de objetos solo si estos tienen una correspondencia de&amp;nbsp;algún&amp;nbsp;campo en otra&amp;nbsp;colección&amp;nbsp;(podríamos&amp;nbsp;decir que es una&amp;nbsp;intersección)&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-EW7RGQRQ8dU/TrA-EGYjs2I/AAAAAAAAAfk/497yJk3W-Mw/s1600/perf.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-EW7RGQRQ8dU/TrA-EGYjs2I/AAAAAAAAAfk/497yJk3W-Mw/s1600/perf.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
en la imagen podemos apreciar que utilizando el query de esta forma, tenemos 3558 mili segundos para obtener el resultado&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&amp;nbsp;r1&amp;nbsp;=&amp;nbsp;(&lt;span style="color: blue;"&gt;from&lt;/span&gt;&amp;nbsp;foo&amp;nbsp;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&amp;nbsp;fooList
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;where&lt;/span&gt;&amp;nbsp;(&lt;span style="color: blue;"&gt;from&lt;/span&gt;&amp;nbsp;bar&amp;nbsp;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&amp;nbsp;barList&amp;nbsp;&lt;span style="color: blue;"&gt;select&lt;/span&gt;&amp;nbsp;bar.Id).Contains(foo.BarId)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;select&lt;/span&gt;&amp;nbsp;foo).ToList();&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
sin darnos cuenta estamos relegando la mayor parte del trabajo en List.Contains (esto aplica para colecciones en memoria, cuando son querys a la base de datos es otra la historia)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
por otro lado cuando creamos un diccionario intermedio para ayudarnos a resolver la dependencia sobre contains() tenemos el siguiente codigo, el cual tarda solo 88 mili segundos para obtener el mismo resultado, aunque consume un poco mas de memoria por el uso del diccionario extra.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;var&lt;/span&gt;&amp;nbsp;barMap&amp;nbsp;=&amp;nbsp;(&lt;span style="color: blue;"&gt;from&lt;/span&gt;&amp;nbsp;item&amp;nbsp;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&amp;nbsp;barList
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;select&lt;/span&gt;&amp;nbsp;item.Id).Distinct().ToDictionary(item&amp;nbsp;=&amp;gt;&amp;nbsp;item,&amp;nbsp;item&amp;nbsp;=&amp;gt;&amp;nbsp;1);
 
&lt;span style="color: blue;"&gt;var&lt;/span&gt;&amp;nbsp;r2&amp;nbsp;=&amp;nbsp;(&lt;span style="color: blue;"&gt;from&lt;/span&gt;&amp;nbsp;foo&amp;nbsp;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&amp;nbsp;fooList
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;where&lt;/span&gt;&amp;nbsp;barMap.ContainsKey(foo.BarId)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;select&lt;/span&gt;&amp;nbsp;foo).ToList();&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;
en resumen podemos decir, Recuerde siempre que el tiempo de&amp;nbsp;búsqueda&amp;nbsp;en una lista es O(n) mientras que el tiempo de&amp;nbsp;búsqueda&amp;nbsp;en una tabla de hash (o diccionario) es O(1).&lt;/div&gt;
&lt;br /&gt;
&lt;a href="http://adf.ly/3WMKe"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Descargar&amp;nbsp;Código&amp;nbsp;Fuente&lt;/b&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-7254487235372946379?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/orKW7mz1rEbPaf0pCkYe2_I8tl8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/orKW7mz1rEbPaf0pCkYe2_I8tl8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/orKW7mz1rEbPaf0pCkYe2_I8tl8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/orKW7mz1rEbPaf0pCkYe2_I8tl8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/zZjENqmeg18" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/7254487235372946379/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/11/c-performance-acelerando-c-tip-1.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/7254487235372946379?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/7254487235372946379?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/zZjENqmeg18/c-performance-acelerando-c-tip-1.html" title="C# Performance, Acelerando C#, Tip #1 List.Contains() vs Dictionary.ContainsKey()" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-EW7RGQRQ8dU/TrA-EGYjs2I/AAAAAAAAAfk/497yJk3W-Mw/s72-c/perf.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>CA9, Ciudad de Guatemala, Guatemala</georss:featurename><georss:point>14.6133333 -90.5352778</georss:point><georss:box>14.4904133 -90.6932063 14.736253300000001 -90.3773493</georss:box><feedburner:origLink>http://www.rdebug.com/2011/11/c-performance-acelerando-c-tip-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MHRHc-eyp7ImA9WhdaFEw.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-6328026868949048870</id><published>2011-10-23T18:17:00.000-06:00</published><updated>2011-10-23T18:17:15.953-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T18:17:15.953-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="plugin" /><title>Visual Studio 2010 copiar Html Resaltado</title><content type="html">Una tarea que parece trivial pero que a la hora de necesitarla se nos hace&amp;nbsp;difícil&amp;nbsp;encontrar una forma&amp;nbsp;rápida, muchas veces termino&amp;nbsp;buscando&amp;nbsp;un sintax highlighter online, pero siempre el formato varia segun cada pagina, finalmente me he tomado el tiempo para encontrar una herramienta mas uniforme y me tope con un plugin para visual studio 2010 que nos permite copiar el html exacto a la&amp;nbsp;representación&amp;nbsp;que estamos viendo en el editor de codigo (lo cual resulta maravilloso)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/"&gt;http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
esta es solo una de las&amp;nbsp;características&amp;nbsp;de este plugin que por cierto se ve &amp;nbsp;muy atractivo, pronto vamos a seguir explorando las herramientas que tiene.&lt;br /&gt;
&lt;br /&gt;
ejemplo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;namespace&lt;/span&gt;&amp;nbsp;errorLoggingTest
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;partial&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&amp;nbsp;&lt;span style="color: #2b91af;"&gt;_Default&lt;/span&gt;&amp;nbsp;:&amp;nbsp;System.Web.UI.&lt;span style="color: #2b91af;"&gt;Page&lt;/span&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: blue;"&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span style="color: blue;"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;&lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt;&amp;nbsp;e)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}
&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;
&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;awwww :) &lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-6328026868949048870?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KI8fENSdv1LMTwMbOWbGMQhKI9I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KI8fENSdv1LMTwMbOWbGMQhKI9I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KI8fENSdv1LMTwMbOWbGMQhKI9I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KI8fENSdv1LMTwMbOWbGMQhKI9I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/ieQtprSaoaA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/6328026868949048870/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/10/visual-studio-2010-copiar-html.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/6328026868949048870?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/6328026868949048870?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/ieQtprSaoaA/visual-studio-2010-copiar-html.html" title="Visual Studio 2010 copiar Html Resaltado" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>CA9, Ciudad de Guatemala, Guatemala</georss:featurename><georss:point>14.6133333 -90.5352778</georss:point><georss:box>14.4904133 -90.6932063 14.736253300000001 -90.3773493</georss:box><feedburner:origLink>http://www.rdebug.com/2011/10/visual-studio-2010-copiar-html.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8CQnc-cCp7ImA9WhdaFEw.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-8316042363737390632</id><published>2011-10-23T18:05:00.001-06:00</published><updated>2011-10-23T18:07:43.958-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-23T18:07:43.958-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nlog" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="error" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><title>Reporte de Errores con NLog en Asp.Net</title><content type="html">&lt;div style="text-align: justify;"&gt;
Una de las características importantes para una aplicación web que esta corriendo en un ambiente publico es la capacidad de reportar de forma adecuada y con información significativa las condiciones de error que se produzcan, en esta entrada vamos a ver una forma simple de lograr este objetivo utilizando la librería NLog (&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://nlog-project.org/"&gt;http://nlog-project.org/&lt;/a&gt;)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
básicamente tenemos que aprovecharnos de un evento que se puede interceptar en el Global.asax de nuestra aplicación luego invocar NLog para guardar la información relativa al error que se produjo.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;br&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;        &lt;span style="color: blue;"&gt;private&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Logger&lt;/span&gt; logger = &lt;span style="color: #2b91af;"&gt;LogManager&lt;/span&gt;.GetCurrentClassLogger();
 
        &lt;span style="color: blue;"&gt;void&lt;/span&gt; Application_Error(&lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, &lt;span style="color: #2b91af;"&gt;EventArgs&lt;/span&gt; e)
        {
            &lt;span style="color: #2b91af;"&gt;Exception&lt;/span&gt; c = Server.GetLastError();
            logger.ErrorException(&lt;span style="color: #a31515;"&gt;&amp;quot;error en web application &amp;quot;&lt;/span&gt;, c);
        }&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;div style="text-align: justify;"&gt;
Luego de esto solo tenemos que asegurarnos de establecer una configuracion adecuada para NLog, ya sea para gurdar archivos de log o mandar mail cada vez que se produce une error etc.
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
NLog.config&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;&lt;span style="color: #a31515;"&gt;xml&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;version&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;1.0&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;encoding&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; ?&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;nlog&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;http://www.nlog-project.org/schemas/NLog.xsd&lt;/span&gt;&amp;quot;
&lt;span style="color: blue;"&gt;      &lt;/span&gt;&lt;span style="color: red;"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style="color: blue;"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;targets&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;target&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;logfile&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;xsi:type&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;File&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;fileName&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;${basedir}\log.txt&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;layout&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;${longdate} ${message} ${exception:format=tostring}&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;  &lt;span style="color: #a31515;"&gt;targets&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
 
&lt;span style="color: blue;"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;rules&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;logger&lt;/span&gt;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;name&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;*&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;minlevel&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;Info&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;writeTo&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt;logfile&lt;/span&gt;&amp;quot;&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;  &lt;span style="color: #a31515;"&gt;rules&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;
&lt;span style="color: blue;"&gt;&lt;span style="color: #a31515;"&gt;nlog&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 13px;"&gt;&lt;span style="color: blue;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;div style="text-align: justify;"&gt;
es importante tomar en cuenta la propiedad layout para los targets, para asegurarnos de que toda la información disponible se esta almacenando (o enviando por correo). &lt;/div&gt;
&lt;br&gt;
&lt;span style="font-size: large;"&gt;&lt;a href="http://adf.ly/3MyuV"&gt;Descargar Codigo Fuente&lt;/a&gt;&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.rdebug.com/2011/10/reporte-de-errores-con-nlog-en-aspnet.html#more"&gt;Más información »&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-8316042363737390632?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9MRRpQ-KP3bLsVK5Ctg4YZHfarM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9MRRpQ-KP3bLsVK5Ctg4YZHfarM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9MRRpQ-KP3bLsVK5Ctg4YZHfarM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9MRRpQ-KP3bLsVK5Ctg4YZHfarM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/8T6gD5KoZqY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/8316042363737390632/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/10/reporte-de-errores-con-nlog-en-aspnet.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/8316042363737390632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/8316042363737390632?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/8T6gD5KoZqY/reporte-de-errores-con-nlog-en-aspnet.html" title="Reporte de Errores con NLog en Asp.Net" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><georss:featurename>Ciudad de Guatemala, Guatemala</georss:featurename><georss:point>14.6133333 -90.5352778</georss:point><georss:box>14.4904133 -90.6932063 14.736253300000001 -90.3773493</georss:box><feedburner:origLink>http://www.rdebug.com/2011/10/reporte-de-errores-con-nlog-en-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMNQHo7eyp7ImA9WhdbGEw.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-6751512618846288812</id><published>2011-10-16T18:14:00.002-06:00</published><updated>2011-10-16T18:14:51.403-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-16T18:14:51.403-06:00</app:edited><title>ASP.NET Master Page cambiar propiedades con codigo (de forma dinamica)</title><content type="html">Cuando utilizamos MasterPages para gestionar el contenido de nuestros sitios web, normalmente colocamos elementos relacionados con la plantilla del sitio. No es extraño el momento en el que tenemos que modificar alguna&amp;nbsp;característica&amp;nbsp;de la MasterPage solo en algunas de las paginas que la utilizan, por lo que se necesita poder acceder al Objeto del tipo MasterPage que representa a la plantilla de la pagina actual.&lt;br /&gt;
&lt;br /&gt;
simple pero a veces un poco escondido, todas las aspx que implementan una MasterPage tienen una propiedad "Master" que sirve para acceder a su MasterPage asi que podemos hacer cosas como&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background: #ffffff; color: black;"&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;public&lt;/span&gt; partial &lt;span style="color: maroon; font-weight: bold;"&gt;class&lt;/span&gt; About &lt;span style="color: #808030;"&gt;:&lt;/span&gt; System&lt;span style="color: #808030;"&gt;.&lt;/span&gt;Web&lt;span style="color: #808030;"&gt;.&lt;/span&gt;UI&lt;span style="color: #808030;"&gt;.&lt;/span&gt;Page
    &lt;span style="color: purple;"&gt;{&lt;/span&gt;
        &lt;span style="color: maroon; font-weight: bold;"&gt;protected&lt;/span&gt; &lt;span style="color: maroon; font-weight: bold;"&gt;void&lt;/span&gt; Page_Load&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: maroon; font-weight: bold;"&gt;object&lt;/span&gt; sender&lt;span style="color: #808030;"&gt;,&lt;/span&gt; EventArgs e&lt;span style="color: #808030;"&gt;)&lt;/span&gt;
        &lt;span style="color: purple;"&gt;{&lt;/span&gt;

            Label b &lt;span style="color: #808030;"&gt;=&lt;/span&gt; &lt;span style="color: #808030;"&gt;(&lt;/span&gt;Label&lt;span style="color: #808030;"&gt;)&lt;/span&gt; Master&lt;span style="color: #808030;"&gt;.&lt;/span&gt;FindControl&lt;span style="color: #808030;"&gt;(&lt;/span&gt;&lt;span style="color: maroon;"&gt;"&lt;/span&gt;&lt;span style="color: #0000e6;"&gt;miLabel&lt;/span&gt;&lt;span style="color: maroon;"&gt;"&lt;/span&gt;&lt;span style="color: #808030;"&gt;)&lt;/span&gt;&lt;span style="color: purple;"&gt;;&lt;/span&gt;            

        &lt;span style="color: purple;"&gt;}&lt;/span&gt;
    &lt;span style="color: purple;"&gt;}&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;span style="color: purple;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;span style="color: purple;"&gt;
&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-6751512618846288812?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8Yu-p3jtKpLWrZ4ACygyQXSI_FE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8Yu-p3jtKpLWrZ4ACygyQXSI_FE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8Yu-p3jtKpLWrZ4ACygyQXSI_FE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8Yu-p3jtKpLWrZ4ACygyQXSI_FE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/kz2okakt-Rc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/6751512618846288812/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/10/aspnet-master-page-cambiar-propiedades.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/6751512618846288812?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/6751512618846288812?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/kz2okakt-Rc/aspnet-master-page-cambiar-propiedades.html" title="ASP.NET Master Page cambiar propiedades con codigo (de forma dinamica)" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/10/aspnet-master-page-cambiar-propiedades.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AMSHg8cSp7ImA9WhdbF04.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-5450394863556113210</id><published>2011-10-15T22:36:00.001-06:00</published><updated>2011-10-15T22:36:29.679-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-15T22:36:29.679-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="debug" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="asp.net" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><category scheme="http://www.blogger.com/atom/ns#" term="elmah" /><title>Elmah, Manejo de Excepciones en ASP.NET</title><content type="html">&lt;div style="text-align: justify;"&gt;
Una&amp;nbsp;característica&amp;nbsp;muy importante de un software es la capacidad que tiene para mejorar en el tiempo, ligado a esto tenemos la necesidad de llevar un registro de los eventos, muchas herramientas existen para llevar log's, pero son tan poderosas y flexibles que muchos usuarios nos perdemos en el poder de las mismas, abrumados por la cantidad de opciones, terminamos diseñando estrategias absolutamente&amp;nbsp;erróneas&amp;nbsp;de logging, por ejemplo archivos de Log ocupando todo el disco duro de un servidor en&amp;nbsp;producción, o miles de correos&amp;nbsp;electrónicos&amp;nbsp;saturando las bandejas de todo el personal operativo.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;a href="http://code.google.com/p/elmah/"&gt;Elmah&lt;/a&gt; es un conjunto de&amp;nbsp;módulos&amp;nbsp;y handlers para ASP.NET que permiten integrar registro excepciones de una forma rapida, flexible y no menos importante modular, extensible y de codigo abierto con la calidad suficiente para entornos de&amp;nbsp;producción&amp;nbsp;(hay varios sitios por ahi que llevan bastante tiempo usando esta herramienta)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
entre las ventajas que tenemos, es que el manejo de errores se hace al nivel externo a nuestra aplicacion, esto implica que no es necesario modificar y compilar&amp;nbsp;nuestras aplicaciones para poder hacer uso de las ventajas que nos presenta dicha herramienta.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
a&amp;nbsp;continuación&amp;nbsp;dejo un&amp;nbsp;vídeo&amp;nbsp;que demuestra el flujo mas simple para usar Elmah, pero que sin embargo deja ver lo poderosa que puede resultar esta herramienta, para ayudarnos a identificar errores y ademas brindar la suficiente&amp;nbsp;información del contexto para poder analizar sus causas y poder reproducir dichos errores en entornos controlados (depuracion).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/NpEBhEGZ2kI" width="560"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;a href="http://adf.ly/3E8SF"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Descargar Codigo Fuente, Visual Studio 2010&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-5450394863556113210?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_3VEIR8hfofLZAAWnddYoMFM9C0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_3VEIR8hfofLZAAWnddYoMFM9C0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_3VEIR8hfofLZAAWnddYoMFM9C0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_3VEIR8hfofLZAAWnddYoMFM9C0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/g3blyvZdr6U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/5450394863556113210/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/10/elmah-manejo-de-excepciones-en-aspnet.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5450394863556113210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5450394863556113210?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/g3blyvZdr6U/elmah-manejo-de-excepciones-en-aspnet.html" title="Elmah, Manejo de Excepciones en ASP.NET" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/NpEBhEGZ2kI/default.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>CA9, Ciudad de Guatemala, Guatemala</georss:featurename><georss:point>14.6133333 -90.5352778</georss:point><georss:box>14.4904133 -90.6932063 14.736253300000001 -90.3773493</georss:box><feedburner:origLink>http://www.rdebug.com/2011/10/elmah-manejo-de-excepciones-en-aspnet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkEMRnczcSp7ImA9WhdbF04.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3245404662304160576</id><published>2011-10-15T22:18:00.000-06:00</published><updated>2011-10-15T22:18:07.989-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-15T22:18:07.989-06:00</app:edited><title>RDebug Dot Com</title><content type="html">finalmente y en vias de soportar el futuro crecimiento de este blog, nos hacemos rdebug.com, el servicio sigue hosteado en blogspot y por 10 dolares salio dominio nuevo :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3245404662304160576?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2G43jOYJmT3vGs0KFcfdcnCryp8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2G43jOYJmT3vGs0KFcfdcnCryp8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2G43jOYJmT3vGs0KFcfdcnCryp8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2G43jOYJmT3vGs0KFcfdcnCryp8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/mId8fCbpYpk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3245404662304160576/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/10/rdebug-dot-com.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3245404662304160576?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3245404662304160576?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/mId8fCbpYpk/rdebug-dot-com.html" title="RDebug Dot Com" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/10/rdebug-dot-com.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYHQn46fSp7ImA9WhdVE0o.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-5275082790391335406</id><published>2011-09-18T12:22:00.000-06:00</published><updated>2011-09-18T12:22:13.015-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-18T12:22:13.015-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term=".net" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><title>AutoMapper, Mapeo Objeto a Objeto en .NET</title><content type="html">&lt;div style="text-align: justify;"&gt;
Este ejemplo muestra como usar la&amp;nbsp;librería&amp;nbsp;&lt;a href="http://automapper.org/"&gt;AutoMapper&lt;/a&gt;&amp;nbsp;para mapear objetos entre si sin tener que copiar&amp;nbsp;de forma manual&amp;nbsp;cada propiedad que nos interesa. en el video se muestra una&amp;nbsp;proyección&amp;nbsp;donde algunas de las propiedades del objeto destino son calculadas a partir de algunas de las propiedades del objeto origen.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/bn9YLvQW_4w" width="420"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-5275082790391335406?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/glqwKSRDlsfvEfiCf9sqFKf7Pms/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/glqwKSRDlsfvEfiCf9sqFKf7Pms/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/glqwKSRDlsfvEfiCf9sqFKf7Pms/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/glqwKSRDlsfvEfiCf9sqFKf7Pms/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/NOgi3eEdEj8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/5275082790391335406/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/09/automapper-mapeo-objeto-objeto-en-net.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5275082790391335406?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/5275082790391335406?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/NOgi3eEdEj8/automapper-mapeo-objeto-objeto-en-net.html" title="AutoMapper, Mapeo Objeto a Objeto en .NET" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/bn9YLvQW_4w/default.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Ciudad de Guatemala, Guatemala</georss:featurename><georss:point>14.6133333 -90.5352778</georss:point><georss:box>14.4904133 -90.6932063 14.736253300000001 -90.3773493</georss:box><feedburner:origLink>http://www.rdebug.com/2011/09/automapper-mapeo-objeto-objeto-en-net.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08CQHk-eip7ImA9WhdVE0s.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-6053386424019314069</id><published>2011-09-18T11:07:00.001-06:00</published><updated>2011-09-18T11:11:01.752-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-18T11:11:01.752-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="visual studio" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><title>agregar System.Web a Aplicación de Consola Visual Studio 2010</title><content type="html">&lt;div style="text-align: justify;"&gt;
Cuando creamos una&amp;nbsp;aplicación&amp;nbsp;de consola en Visual Studio 2010 y nos encontramos con alguna&amp;nbsp;librería&amp;nbsp;que tiene alguna dependencia sobre System.Web nos encontramos con un error a la hora de compilar que indica que falta una referencia al mencionado assembly, el problema es que al buscar entre las referencias de .NET system.web no aparece, el problema es que las aplicaciones de consola se crean con el "target framework" configurado como ".net framework 4 (client profile)" el cual limita algunos assemblies, es suficiente con cambiar el target a ".net framework 4" para que sea posible agregar system.web&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/lMf9wKZytRI" width="420"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-6053386424019314069?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q3SIBmACjH81Ub41iZjKz-v_6xE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q3SIBmACjH81Ub41iZjKz-v_6xE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q3SIBmACjH81Ub41iZjKz-v_6xE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q3SIBmACjH81Ub41iZjKz-v_6xE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/4NxKfkQqzw0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/6053386424019314069/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/09/agregar-systemweb-aplicacion-de-consola.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/6053386424019314069?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/6053386424019314069?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/4NxKfkQqzw0/agregar-systemweb-aplicacion-de-consola.html" title="agregar System.Web a Aplicación de Consola Visual Studio 2010" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/lMf9wKZytRI/default.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Ciudad de Guatemala, Guatemala</georss:featurename><georss:point>14.6133333 -90.5352778</georss:point><georss:box>14.4904133 -90.6932063 14.736253300000001 -90.3773493</georss:box><feedburner:origLink>http://www.rdebug.com/2011/09/agregar-systemweb-aplicacion-de-consola.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UGRXc5cSp7ImA9WhdSFU8.&quot;"><id>tag:blogger.com,1999:blog-1660878123200966844.post-3237422728728409053</id><published>2011-07-24T11:38:00.001-06:00</published><updated>2011-07-24T11:40:24.929-06:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-24T11:40:24.929-06:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="animacion" /><category scheme="http://www.blogger.com/atom/ns#" term="c#" /><category scheme="http://www.blogger.com/atom/ns#" term="2d" /><category scheme="http://www.blogger.com/atom/ns#" term="opengl" /><title>Animacion OpenGL con C# with OpenTK</title><content type="html">empezamos con OpenGL desde C# 4 en Visual Studio 2010 usando la&amp;nbsp;librería&amp;nbsp;OpenTK&lt;br /&gt;
&lt;br /&gt;
teclas&lt;br /&gt;
&lt;br /&gt;
A y Z&lt;br /&gt;
S y X&lt;br /&gt;
D y C&lt;br /&gt;
F y V&lt;br /&gt;
&lt;br /&gt;
básicamente&amp;nbsp;es esta&amp;nbsp;animación&amp;nbsp;portada a C#&amp;nbsp;http://rdebug.blogspot.com/2011/07/animacion-opengl-2d-lwjgl-funciones.html&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-dJqijV9sGa4/TixX3IJgdTI/AAAAAAAAAeQ/NftQafVQRAY/s1600/animacion_opengl_C%2523_2d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-dJqijV9sGa4/TixX3IJgdTI/AAAAAAAAAeQ/NftQafVQRAY/s320/animacion_opengl_C%2523_2d.png" width="308" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/ouFD4IUEYYc" width="425"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://adf.ly/2BHSp"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Descargar Codigo Fuente y Ejecutable&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1660878123200966844-3237422728728409053?l=www.rdebug.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/T5Lyl5IVwDgNLEnJc8xJGqskKg4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/T5Lyl5IVwDgNLEnJc8xJGqskKg4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/T5Lyl5IVwDgNLEnJc8xJGqskKg4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/T5Lyl5IVwDgNLEnJc8xJGqskKg4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/rdebugblog/~4/-boeXBQd50A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.rdebug.com/feeds/3237422728728409053/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://www.rdebug.com/2011/07/animacion-opengl-con-c-with-opentk.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3237422728728409053?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1660878123200966844/posts/default/3237422728728409053?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/rdebugblog/~3/-boeXBQd50A/animacion-opengl-con-c-with-opentk.html" title="Animacion OpenGL con C# with OpenTK" /><author><name>RDebug Blog</name><uri>https://profiles.google.com/104574579541876336302</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-2gZOFUZsAws/AAAAAAAAAAI/AAAAAAAAAaw/sWbchpHRff0/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-dJqijV9sGa4/TixX3IJgdTI/AAAAAAAAAeQ/NftQafVQRAY/s72-c/animacion_opengl_C%2523_2d.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.rdebug.com/2011/07/animacion-opengl-con-c-with-opentk.html</feedburner:origLink></entry></feed>

