<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Push The Button</title>
	<atom:link href="http://pushthebutton.es/feed" rel="self" type="application/rss+xml" />
	<link>http://pushthebutton.es</link>
	<description>Worklog de electronica, DIY, e informática de Alwar</description>
	<lastBuildDate>Tue, 15 Jun 2010 12:16:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Matriz de diodos &#8211; Test 3</title>
		<link>http://pushthebutton.es/archivos/matriz-de-diodos-test-3</link>
		<comments>http://pushthebutton.es/archivos/matriz-de-diodos-test-3#comments</comments>
		<pubDate>Mon, 14 Jun 2010 19:29:45 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronica y Hardware]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=258</guid>
		<description><![CDATA[Está hecho con Arduino, un array de pares darlington (ULN2003A) y un shift register 74HC595. Solo falta montarlo en una placa, soldarlo con unos cuantos mas shift registers y tendremos una marquesina. Esuqema de conexion de la matriz de 8&#215;8: Las resistencias que hay entre los integrados y la matriz, a mi me ha funcionado [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/XnqpI_hctaU&amp;hl=es_ES&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/XnqpI_hctaU&amp;hl=es_ES&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Está hecho con Arduino, un array de pares darlington (ULN2003A) y un shift register 74HC595. Solo falta montarlo en una placa, soldarlo con unos cuantos mas shift registers y tendremos una marquesina. Esuqema de conexion de la matriz de 8&#215;8:<br />
<a href="http://img193.imageshack.us/img193/6409/matrixl.png"><img class="aligncenter" title="8x8 Led matrix" src="http://img193.imageshack.us/img193/6409/matrixl.png" alt="8x8 Led matrix" width="640" /></a></p>
<p>Las resistencias que hay entre los integrados y la matriz, a mi me ha funcionado con resistencias de entre 0,5K Ohm y 1k Ohm<br />
El codigo está <a href="http://pushthebutton.es/archivos/matriz-de-diodos-test-3"> aquí</a>.<br />
<span id="more-258"></span></p>
<pre name="code" class="c">
// 8*8 LED matrix with ULN2003A &amp; 74HC595
// Made by Vadim S.
//On 25.06.2009
// Mod by Alwar
//On 13.06.2010
///Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
int x;
int y;
// here the definion of all the letter(big ans small) and numbers
#define A     {B00111100,B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010}
#define B     {B01111100,B01000010,B01000010,B01111100,B01000010,B01000010,B01000010,B01111100}
#define C     {B00111110,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B00111110}
#define D     {B01111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B01111100}
#define E     {B01111110,B01000000,B01000000,B01111100,B01000000,B01000000,B01000000,B01111110}
#define F     {B01111110,B01000000,B01000000,B01111100,B01000000,B01000000,B01000000,B01000000}
#define G     {B00111100,B01000010,B01000010,B01000000,B01000111,B01000010,B01000010,B00111100}
#define H     {B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010,B01000010}
#define I     {B00111000,B00010000,B00010000,B00010000,B00010000,B00010000,B00010000,B00111000}
#define J     {B00011100,B00001000,B00001000,B00001000,B00001000,B01001000,B01001000,B00110000}
#define K     {B01000100,B01001000,B01010000,B01100000,B01010000,B01001000,B01000100,B01000010}
#define L     {B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01111110}
#define M     {B01000100,B10101010,B10010010,B10010010,B10000010,B10000010,B10000010,B10000010}
#define N     {B01000010,B01100010,B01010010,B01001010,B01001010,B01001010,B01000110,B01000010}
#define O     {B00111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00111100}
#define P     {B00111100,B01000010,B01000010,B01000010,B01111100,B01000000,B01000000,B01000000}
#define Q     {B00111100,B01000010,B01000010,B01000010,B01000010,B01000110,B00111110,B00000001}
#define R     {B00111100,B01000010,B01000010,B01000010,B01111100,B01000100,B01000010,B01000010}
#define S     {B00111100,B01000010,B01000000,B01000000,B00111100,B00000010,B01000010,B00111100}
#define T     {B11111110,B00010000,B00010000,B00010000,B00010000,B00010000,B00010000,B00010000}
#define U     {B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00111100}
#define V     {B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00100100,B00011000}
#define W     {B10000010,B10000010,B10000010,B10000010,B10010010,B10010010,B10101010,B01000100}
#define X     {B01000010,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010,B01000010}
#define Y     {B10000010,B01000100,B00101000,B00010000,B00010000,B00010000,B00010000,B00010000}
#define Z     {B01111110,B00000010,B00000100,B00001000,B00010000,B00100000,B01000000,B01111110}
#define lit_a {B00000000,B00000000,B00000000,B00111000,B01000100,B01000101,B01000101,B00111010}
#define lit_b {B00000000,B00100000,B00100000,B00100000,B00111100,B00100010,B00100010,B00111100}
#define lit_c {B00000000,B00000000,B00000000,B00111100,B01000000,B01000000,B01000000,B00111100}
#define lit_d {B00000000,B00000100,B00000100,B00000100,B00111100,B01000100,B01000100,B00111100}
#define lit_e {B00000000,B00000000,B00111000,B01000100,B01000100,B01111000,B01000000,B00111100}
#define lit_f {B00011000,B00100100,B00100000,B00100000,B01110000,B00100000,B00100000,B00100000}
#define lit_g {B00011100,B00100010,B00100010,B00011110,B00000010,B00000010,B00010010,B00001100}
#define lit_h {B01000000,B01000000,B01000000,B01000000,B01111000,B01000100,B01000100,B01000100}
#define lit_i {B00000000,B00010000,B00000000,B00010000,B00010000,B00010000,B00010000,B00010000}
#define lit_j {B00000000,B00010000,B00000000,B00010000,B00010000,B00010000,B01010000,B00110000}
#define lit_k {B00000000,B00000000,B01001000,B01010000,B01100000,B01100000,B01010000,B01001000}
#define lit_l {B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000,B01000000}
#define lit_m {B00000000,B00000000,B00110100,B01001010,B01001010,B01001010,B01001010,B01001010}
#define lit_n {B00000000,B00000000,B01111000,B01000100,B01000100,B01000100,B01000100,B01000100}
#define lit_o {B00000000,B00000000,B00000000,B00011100,B00100010,B00100010,B00100010,B00011100}
#define lit_p {B00000000,B00000000,B00011100,B00100010,B00100010,B00111100,B00100000,B00100000}
#define lit_q {B00000000,B00000000,B00111000,B01000100,B01000100,B00111100,B00000100,B00000100}
#define lit_r {B00000000,B00000000,B00111000,B01000000,B01000000,B01000000,B01000000,B01000000}
#define lit_s {B00000000,B00111000,B01000100,B01000000,B00111000,B00000100,B01000100,B00111000}
#define lit_t {B00100000,B00100000,B00100000,B01111000,B00100000,B00100000,B00100010,B00011100}
#define lit_u {B00000000,B00000000,B00000000,B01000100,B01000100,B01000100,B01000100,B00111000}
#define lit_v {B00000000,B00000000,B01000100,B01000100,B01000100,B01000100,B00101000,B00010000}
#define lit_w {B00000000,B00000000,B00000000,B01000100,B01000100,B01010100,B01010100,B00101000}
#define lit_x {B00000000,B00000000,B00000000,B00000000,B00100100,B00011000,B00011000,B00100100}
#define lit_y {B00000000,B01000100,B01000100,B00111100,B00000100,B00000100,B00000100,B00111000}
#define lit_z {B00000000,B00000000,B00000000,B01111100,B00001000,B00010000,B00100000,B01111100}
#define space {B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000}
#define num_0 {B00111100,B01000110,B01001010,B01001010,B01001010,B01010010,B01100010,B00111100}
#define num_1 {B00001000,B00011000,B00001000,B00001000,B00001000,B00001000,B00001000,B00011100}
#define num_2 {B00111100,B01000010,B00000100,B00001000,B00010000,B00100000,B01000000,B01111110}
#define num_3 {B01111110,B00000010,B00000010,B00011100,B00000010,B00000010,B01000010,B00111100}
#define num_4 {B00000100,B00001100,B00010100,B00100100,B01000100,B01111110,B00000100,B00000100}
#define num_5 {B01111110,B01000000,B01000000,B00111100,B00000010,B00000010,B00000010,B01111100}
#define num_6 {B00111100,B01000000,B01000000,B01111100,B01000010,B01000010,B01000010,B00111100}
#define num_7 {B01111110,B00000010,B00000100,B00001000,B00010000,B00010000,B00010000,B00010000}
#define num_8 {B00111100,B01000010,B01000010,B00111100,B01000010,B01000010,B01000010,B00111100}
#define num_9 {B00111100,B01000010,B01000010,B01000010,B00111110,B00000010,B00000010,B00111100}
#define times {B00000000,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010,B00000000}
// Signals for shift register, go over al cols, one each time
byte barrido[8] = { B00000001,B00000010,B00000100,B00001000,B00010000,B00100000,B01000000,B10000000 };
const int numPatterns = 15;//this is the number of patterns you want to display
// the patterns order
byte patterns[numPatterns][8]={space,M,A,D,E,space,B,Y,space,A,L,W,A,R,space};
void setup(){
  // this is a commed that makes pins 0-7 outputs(see more on the arduino site)
  DDRD=B11111111;
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}
// int loop acts like a delay, it take 8 mSecands to scan all of the rows so int
// loops = 15 is a good time for it
void display_pattern(int loops)
{
   for(x=0;x
   { // loop over the patterns
      for (int z=0;z&lt;8;z++)
      { //scrolls one bite at a time
         for(int t=0;t
         {// the delay we get with loops
            for(y=0;y&lt;8;y++)
            {
               // loops over the array of bytes
               byte temp = patterns[x][y];
               byte temp_2=patterns[x+1][y];
               //writes digital outputs, Z is for how much bites it need to scroll
               PORTD = (temp&lt;&gt;7-z);
               delayMicroseconds(800);// the time every row is one
               PORTD=B00000000;// all pins are low, fixes the ghosting effect
               digitalWrite(latchPin, LOW);
               shiftOut(dataPin, clockPin, LSBFIRST, barrido[y]);
               //return the latch pin high to signal chip that it
               //no longer needs to listen for information
               digitalWrite(latchPin, HIGH);
            }
         }
      }
   }
}
void loop(){
// calls for the display_pattern function and says that int loop = 15
// (if you do more loop the pattern whould scrrol slower).
display_pattern(15);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/matriz-de-diodos-test-3/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Voltimetro para baterias (de airsoft) [Battery Tester]</title>
		<link>http://pushthebutton.es/archivos/voltimetro-para-baterias-de-airsoft-battery-tester</link>
		<comments>http://pushthebutton.es/archivos/voltimetro-para-baterias-de-airsoft-battery-tester#comments</comments>
		<pubDate>Fri, 11 Jun 2010 23:06:59 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronica y Hardware]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=232</guid>
		<description><![CDATA[Lo mejor de esto es el comprender que esa asignatura llamada fundamentos físicos de la informática está sirviendo para algo. Si antes fueron los transistores bipolares, ahora es el &#8220;Divisor de tensión&#8220;. Incomprendido hasta hoy este circuito hace honor a su nombre dividiendo la tensión de entrada dependiendo de los valores de las resistencias: Para [...]]]></description>
			<content:encoded><![CDATA[<div align="justify">Lo mejor de esto es el comprender que esa asignatura llamada fundamentos físicos de la informática está sirviendo para algo. Si antes fueron los transistores bipolares, ahora es el &#8220;<a href="es.wikipedia.org/wiki/Divisor_de_tensión">Divisor de tensión</a>&#8220;. Incomprendido hasta hoy este circuito hace honor a su nombre dividiendo la tensión de entrada dependiendo de los valores de las resistencias:</p>
<div align="center"><a href="http://es.wikipedia.org/wiki/Archivo:Resistive_divider.png"><img alt="Divisor de Tensión" src="http://img809.imageshack.us/img809/1264/resistivedivider.png" title="Divisor de tensión" width="178" height="168" /></a></div>
<p><span id="more-232"></span><br />
Para hallar el valor de salida en relación al de entrada debemos aplicar la siguiente formula:</p>
<div align="center"><img src="http://pushthebutton.es/wp-content/plugins/easy-latex/cache/tex_13246a80076a74dbbdd2915b99105021.png" title="V_{out}=\frac{R_2}{R_1 + R_2} V_{in} " style="vertical-align:-20%;" class="tex" alt="V_{out}=\frac{R_2}{R_1 + R_2} V_{in} " /></div>
<p>¿Y para uqe nos vale esto? Pues porque el &#8220;<a href="http://es.wikipedia.org/wiki/Conversi%C3%B3n_anal%C3%B3gica-digital">convertidor analógico digital</a>&#8221; que trae Arduino solo acepta hasta 5 voltios, pero si por ejemplo en mi caso queremos utilizar el circuito para comprobar baterías de 8,4 voltios, y puede que también de 9,6 voltios necesitamos reducir el voltaje de entrada para no churruscar nuestra placa de prototipado. Entonces con el divisor de tensión el ADC de arduino ahora acepta hasta 10v con una resolución de 10bits lo que no da una precisión de 9,77 mV. Si quisiéramos baterías mas grandes deberíamos añadir resistencias al divisor de tensión para que en Vout cuando Vin es máximo solo hubiese 5 voltios. No vale poner una resistencia muy grande, necesitamos varias, ya que en mi ejemplo cada resistencia tiene una caída de potencial del 50%. Si po ejemplo quisiéramos medir baterías de hasta 20 voltios, necesitaríamos dividir por 4 la tensión, y lo conseguríamos conectando en vez de dos resistencias, cuatro. Y conectaríamos Vout entre la penúltima y la última resistencia. Como las 4 resistencias serán iguales, pues cada una tendrá una caída de potencial de 1/4 del voltaje de entrada, lo que nos daría como máximo 5 voltios.<br />
<br />
Este es el circuito. Donde el simbolo del voltimetro es la placa arduino usando cualquiera de sus pines de entrada analogicos (A0~A5). La batería de 9 voltios es la que queremos probar. Las resistencias según pueden ser de entre 1K y 10K, yo uso un valor intermedio de 4,7K.<br />
<a href="http://img824.imageshack.us/img824/6564/batterytester.png"><img alt="" src="http://img824.imageshack.us/img824/6564/batterytester.png" title="Circuito battery test" class="aligncenter" width="330" height="425" /></a><br />
<br />
<strong>El código</strong><br />
Es muy sencillo, creo que no hace falta explicarlo.</p>
<pre name="code" class="c">
int sensorPin = 3;
int sensorValue = 0;
float voltaje = 0.0;

void setup()
{
  Serial.begin(9600);
  Serial.println("Battery Tester");
} 

void loop()
{
  sensorValue = analogRead(sensorPin);
  Serial.println(sensorValue);
  voltaje = ((5*float(sensorValue))/1024);
  Serial.print("Divisor de Tension (Vout): ");
  Serial.println(voltaje,3);
  Serial.print("Voltaje estimado (Vin): ");
  Serial.println(voltaje*2,3);
  delay(1250);

}</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/voltimetro-para-baterias-de-airsoft-battery-tester/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Eagle + POV RAY =</title>
		<link>http://pushthebutton.es/archivos/eagle-pov-ray</link>
		<comments>http://pushthebutton.es/archivos/eagle-pov-ray#comments</comments>
		<pubDate>Tue, 08 Jun 2010 22:57:07 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Electronica y Hardware]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[ATmega]]></category>
		<category><![CDATA[AVR]]></category>
		<category><![CDATA[EAGLE]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[POV RAY]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/archivos/eagle-pov-ray</guid>
		<description><![CDATA[Ahora me ha dado por buscar un programador de micros ATmega. He visto dos opciones, el USBasp o desde el propio arduino. Me gustaba bastante el USBasp de Olek ya que es como un pendrive pero es casi todo SMD y para mis manos inexpertas no es viable. A si que me decido por la [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://img80.imageshack.us/img80/5906/isp2.png"><img class="aligncenter" title="ISP Shield" src="http://img80.imageshack.us/img80/5906/isp2.png" alt="ISP Shield" width="600" /></a></p>
<div align="justify">Ahora me ha dado por buscar un programador de micros ATmega. He visto dos opciones, el <a href="http://www.fischl.de/usbasp/">USBasp</a> o desde el propio <a href="http://drug123.org.ua/mega-isp-shield/">arduino</a>. Me gustaba bastante el <a href="http://olek.tk/en/show_image.php?img=prj_usbasp.jpg">USBasp de Olek</a> ya que es como un pendrive pero es casi todo <a href="http://es.wikipedia.org/wiki/Tecnolog%C3%ADa_de_montaje_superficial">SMD</a> y para mis manos inexpertas no es viable. A si que me decido por la placa <a href="http://en.wikipedia.org/wiki/In-system_programming">ISP</a> para arduino. Viendo lo sencilla que es se me a ocurrido modificarla para que porte un zócalo de 28 pines para no tener que usar cables a la hora de programar, aunque no he eliminado ese conector. Este es el resultado de tener que estar estudiando, que haces de todo menos estudiar. El día que tenga que preparar unas oposiciones seguro que construyo un avión o una central nuclear. A ver si después de exámenes lo llevo a la realidad y vemos si <a href="http://www.nongnu.org/avrdude/">AVRDUDE</a> puede programar a traves de eso.</div>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/eagle-pov-ray/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sustituir un Inverter ó Como reparar la pantalla de un portatil que se ve muy oscuro</title>
		<link>http://pushthebutton.es/archivos/sustituir-un-inverter-o-como-reparar-la-pantalla-de-un-portatil-que-se-ve-muy-oscuro</link>
		<comments>http://pushthebutton.es/archivos/sustituir-un-inverter-o-como-reparar-la-pantalla-de-un-portatil-que-se-ve-muy-oscuro#comments</comments>
		<pubDate>Tue, 27 Apr 2010 13:52:23 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Electronica y Hardware]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Reparaciones]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=212</guid>
		<description><![CDATA[El otro día llego mi hermano con el portátil estropeado. Al encenderlo no se veía nada en la pantalla. Luego observe que si se veían sombras e imágenes pero muy oscuras. Le faltaba la retro-iluminación o backlight. Como ya tiene unos años el portátil decidí arreglarlo yo y prescindir de los estafadores del pccity o [...]]]></description>
			<content:encoded><![CDATA[<div align="justify">El otro día llego mi hermano con el portátil estropeado. Al encenderlo no se veía nada en la pantalla. Luego observe que si se veían sombras e imágenes pero muy oscuras. Le faltaba la retro-iluminación o backlight. Como ya tiene unos años el portátil decidí arreglarlo yo y prescindir de los <strong>estafadores</strong> del pccity o cualquier otro S.A.T.<br />
<img src="http://img337.imageshack.us/img337/6401/portada600.jpg" alt="Inverter Acer 1350" /><br />
Investigando vi que podía ser que se hubieran fundido las lamparas que iluminan (cosa muy improbable) o que hubiese muerto el <a href="http://en.wikipedia.org/wiki/Inverter_%28electrical%29">inversor</a>. Viendo foros y googleando vi que esto último era algo frecuente, a si que me puse manos a la obra.</div>
<p><span id="more-212"></span></p>
<div align="justify">Desarme la tapa del portátil y saque el inversor, busque el numero de serie y googlee donde podría encontrarlo. Yo lo encontré en dos sitios, en <a href="http://www.dealextreme.com/details.dx/sku.29573">DealExtreme</a> que está agotado, y en <a href="http://www.bestofferbuy.com/lcd-screen-inverter-board-for-acer-13505600300-laptops-p-30897.html">Bestofferbuy</a>. Las dos páginas son muy similares, situadas en hong kong, no cobran por el envió, a si que por 7€ tuve el inversor, eso si ha tardado 3 semanas cuando lo normal (cuando compro cosas en hong-kong) son 1 o 2, pero esto puede haberse debido al jaleo del volcán <a href="http://es.wikipedia.org/wiki/Eyjafjallaj%C3%B6kull">Eyjafjallajökull</a>.</p>
<p><strong>Como desarmarlo</strong>, y esto vale para todos los portátiles (al menos los que he desmontado).<br />
Básicamente hay que quitar los tornillos que suelen estar debajo de las gomas que hacen de almohadillas para la tapa:<br />
<img src="http://img297.imageshack.us/img297/8448/desmontar1.jpg" alt="Desmontar pantalla acer 1350" /><br />
déjalas en algún sitio seguro o pégalas sobre algo liso como hice yo, que utilice la caja metálica de los destornilladores de seguridad para guardarlas. En mi caso la que estaba en la parte superior central del marco no tenía debajo tornillo.</p>
<p>Una vez quitados los tornillos, con cuidado de no partir la carcasa, hay que forzarla por todos los bordes para que salga, ya que estará sujeta con grapas. Es posible que necesites hacer una poca de palanca con un destornillador plano pequeño.<br />
<img src="http://img203.imageshack.us/img203/3966/desmontar2.jpg" alt="Desmontar pantalla acer 1350" /></p>
<h2><span style="color: #ff0000;"><strong>PELIGRO!!! El inversor genera unos 1000 V en su salida. Desconecta cable de alimentación y batería antes de desmontar nada.</strong></span></h2>
<p>Una vez abierta la carcasa de la pantalla solo hay que reemplazar el inversor viejo por el nuevo. En algunos hay que quitar algún tornillo, en otros como era mi caso solo hay que despegarlo y poner el nuevo.<br />
<img src="http://img442.imageshack.us/img442/1456/inversores1.jpg" alt="Inversores acer 1350" /><br />
El que esta conectado es el estropeado y el que esta suelto es el nuevo. Como veis no se ve ningún daño en el inversor, aunque este roto. Según he leído para comprobar si el inversor funciona, Encendemos el portátil, y con la salida del inversor (el conector que son 2 cables) desconectada de la pantalla acercamos (sin tocar ni cortocircuitar) un destornillador que este aislado (si no calambrazo!) y si saltan chispas es que hay corriente por tanto el inversor funciona y nuestro problema se puede deber a las lamparas.</p>
<p>Para volver a montar la carcasa basta con ponerla en su sitio e ir apretando por todas las grapas para que se cierren. Oiremos &#8220;click&#8221; a medida que las vallamos cerrando. Si vemos que no cierra bien, mirar a ver si hay alguna grapa que todavía no ha entrado. Una vez cerrado si vemos que esta bien ponemos los tornillos, ponemos la almohadillas y listo!!</p>
<p><img src="http://img691.imageshack.us/img691/1994/itworks.jpg" alt="Inversor Acer 1350 funcionando" /><br />
Todavía no he conseguido que ninguno de mis hermanos use linux xD
</div>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/sustituir-un-inverter-o-como-reparar-la-pantalla-de-un-portatil-que-se-ve-muy-oscuro/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Empaquetador de practicas para Linux &#8211; PaKetX v0.1</title>
		<link>http://pushthebutton.es/archivos/empaquetador-de-practicas-para-linux-paketx-v0-1</link>
		<comments>http://pushthebutton.es/archivos/empaquetador-de-practicas-para-linux-paketx-v0-1#comments</comments>
		<pubDate>Wed, 14 Apr 2010 12:01:59 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Scripts y Programacion]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=205</guid>
		<description><![CDATA[Este programa está escrito con la intención de proporcionar una solución a los alumnos de la Universidad Rey Juan Carlos I de Madrid, usuarios de Linux que necesitan entregar sus practicas empaquetadas con el programa que proporciona la universidad. Yo no guardo ninguna relación con la universidad, salvo que estudio allí. Su funcionamiento es bien [...]]]></description>
			<content:encoded><![CDATA[<p>Este programa está escrito con la intención de proporcionar una solución a los alumnos de la Universidad Rey Juan Carlos I de Madrid, usuarios  de Linux que necesitan entregar sus practicas empaquetadas con el programa que proporciona la universidad. Yo no guardo ninguna relación con la universidad, salvo que estudio allí.<br />
<img src="http://img683.imageshack.us/img683/6403/paketx.png" alt="PaKetX - Empaquetador de practicas para linux" /><br />
Su funcionamiento es bien sencillo. Lee un archivo XML (que se distribuye en zip con extensión <a href="http://dac.escet.urjc.es/">*.dac</a>) en el cual se especifica que archivos hay que entregar para la realización de la practica, y cuantos miembros puede tener el grupo de trabajo. El programa mira que en el directorio donde se encuentra estén los archivos de la practica, y si están pide los datos de los miembros de grupo (nombre y expediente), lo guarda en un archivo de texto y lo &#8220;zipea&#8221; todo junto. Este zip debería ser totalmente compatible con los que genera la aplicación para windows. Aunque esto todavía no lo he comprobado.</p>
<p>Ademas le he añadido otra funcionalidad (como mola el software libre) y es que si la ejecutas con la opción make (no la de compilar si no &#8220;paketX make&#8221;) pues te crea una carpeta con el nombre de la practica y en ella todos los archivos (en blanco claro) que hay que entregar, así te ahorras el trabajo de crearte la estructura de la practica. Claro que solo funciona con archivos de texto (por ejemplo para los VHDl *.vhd o los sources de Pascal *.pas), si te genera un archivo *.pdf lo puedes borrar porque solo sirve para ver que tienes que entregar.</p>
<p>Es mi primer script serio en bash, y espero que no seáis muy duros con el, ya que hace dos dias, sabía bien poco sobre este lenguaje de scripting. Osea que tendrá sus fallos.<br />
Esta escrito y testado bajo Debian GNU/LINUX squeeze. Que yo sepa solo necesita para funcionar, bash, p7zip y XMLStarlet.</p>
<p>El programa lo podéis bajar desde el <a href="http://alwar.mainfri.com/Downloads/paketX/paketX">archivo de alwar</a></p>
<h2><strong>Actualización v0.2<br />
</strong></h2>
<p>He actualizado el script, ya que antes separaba los nombres con un espacio y el programa para windows lo hace con un tabulador. Ahora el script también mete un tabulador. Estuve comparando una practica empaquetada con ambos programas, y a excepción del tabulador el archivo era idéntico. Solo cambia una cosa, y es que el programa para windows nombra a la practica con los nombres de los expedientes a la inversa de como los escribes, mientras que el script para linux lo pone en el orden que fueron escritos. Esto no creo que sea un problema ya que cuando examinen la practica no creo que sepan en que orden los introdujiste.</p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/empaquetador-de-practicas-para-linux-paketx-v0-1/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scar L + Silenciador + Cañon de Precision</title>
		<link>http://pushthebutton.es/archivos/scar-l-silenciador-canon-de-precision</link>
		<comments>http://pushthebutton.es/archivos/scar-l-silenciador-canon-de-precision#comments</comments>
		<pubDate>Sun, 07 Feb 2010 10:19:11 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Airsoft]]></category>
		<category><![CDATA[HowTo]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=181</guid>
		<description><![CDATA[No se si ha todo el mundo le pasa con los silenciadores, pero lo normal que he visto, es que las bolas se atasquen al salir, y no le des ni a un elefante a 2 metros. Se chocan con los bordes y paredes y termina saliendo corcho en vez de bolas. Para solucionar esto, [...]]]></description>
			<content:encoded><![CDATA[<p>No se si ha todo el mundo le pasa con los silenciadores, pero lo normal que he visto, es que las bolas se atasquen al salir, y no le des ni a un elefante a 2 metros. Se chocan con los bordes y paredes y termina saliendo corcho en vez de bolas. Para solucionar esto, podría haber quitado directamente el silenciador, pero como el scar anda un poco escaso de FPS y precisión, preferí probar a ponerle un cañón de precisión mas largo, para que asi no se atasquen las bolas en el silenciador, y ademas ganar algo de FPS.</p>
<p>Para ello he utilizado un cañón de 450mm y un diámetro de 6,04mm. Con el silenciador puesto, nos sobran unos 3 cm de cañón que hay que cortar, pulir y redondear para que no queden bordes que puedan modificar la trayectoria de la bola.</p>
<p style="text-align: center;">Aqui una vista de los dos cañones juntos:<br />
<img class="aligncenter" src="http://img96.imageshack.us/img96/6738/comparativa1.jpg" alt="Comparativa cañones" width="392" height="164" /></p>
<p style="text-align: center;">Y aqui los dos cañones, el cañon largo ya perfectamente montado.<br />
<img class="aligncenter" src="http://img96.imageshack.us/img96/4460/comparativa2.jpg" alt="Comparativa cañones y silenciador" width="347" height="95" /></p>
<p>Y aquí el cañon ya cortado:<br />
<img src="http://img515.imageshack.us/img515/2648/scart.jpg" alt="Scar y Silenciador" /></p>
<p>Una vez limado el cañón queda mas metido, mas liso el borde, y podemos limar un poco del interior para hacer la salida cónica y que no entorpezca a la bola al salir. Conviene empezar con una lima de grano gordo, y luego pasar a una fina para un mejor acabado. Y si nos molesta mucho que se vea el cañón dorado, pues podemos pintar la punta.</p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/scar-l-silenciador-canon-de-precision/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recuperar particion EXT2 o EXT3 (Recuperar SuperBlock)</title>
		<link>http://pushthebutton.es/archivos/recuperar-particion-ext2-o-ext3-recuperar-superblock</link>
		<comments>http://pushthebutton.es/archivos/recuperar-particion-ext2-o-ext3-recuperar-superblock#comments</comments>
		<pubDate>Sun, 07 Feb 2010 09:49:47 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=183</guid>
		<description><![CDATA[¿Cuantas veces nos cargamos una partición? Pues yo ya lo he hecho muchas veces, suerte que siempre consigo arreglarlas xD Introducción Esta vez, (todo por culpa de windows que por arte de birlibirloque se carga el MBR haciendo cualquier SO inarrancable ) intentado restaurar una copiar del MBR, por error, en vez de copiarla al [...]]]></description>
			<content:encoded><![CDATA[<p>¿Cuantas veces nos cargamos una partición? Pues yo ya lo he hecho muchas veces, suerte que siempre consigo arreglarlas xD</p>
<p><strong>Introducción</strong><br />
Esta vez, (todo por culpa de windows que por arte de birlibirloque se carga el <a href="http://es.wikipedia.org/wiki/Master_Boot_Record">MBR</a> haciendo cualquier SO inarrancable ) intentado restaurar una copiar del MBR, por error, en vez de copiarla al inicio del disco, (donde esta mi MBR) la copie al principio de la partición 2 (hd0,1 ó sda2). Al principio el error, no parece tan grave, pero cuando ves que no puedes montar la partición de ninguna manera, te empiezas a mosquear ¬¬</p>
<p><span id="more-183"></span><br />
<a href="#grano">Vamos al Grano</a></p>
<p><strong>&#8220;Tranquilidad y buenos alimentos&#8221;</strong> como se suele decir, lo primero ante un fallo de estos, es no alterarse y no estropearlo mas, intentar arreglarlo precipitadamente nos puede llevar a intentar arreglarlo de alguna forma que solo lo estropeemos mas (o irreversible). Ante todo debemos empezar con un buen diagnostico (En este caso, observando la salida de mount+google hubieramos dado pronto con la solución, sin correr a coger el <a href="http://www.cgsecurity.org/wiki/TestDisk">testdisk</a>)<br />
Una buena practica es hacer backups, así si no tienes datos irrecuperables, puedes directamente formatear y volver a empezar. Pero como yo no lo tenía, y tampoco sabía como arreglarlo, pues antes de estropearlo mas, nos hacemos un backup por ejemplo con <a href="http://clonezilla.org/">clonezilla</a>. Tiene una interfaz hecha con ncurses (intuyo) que es un poco liosa a mi parecer (o que la versión en castellano esta mal traducida) , pero si tenemos espacio en otra particion/disco en el mismo PC donde esta la ext3 en cuestión, pues podemos copiarla a un archivo como yo hice (25 archivos de 2 GB <img src='http://pushthebutton.es/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ), si no pues buscar otra forma de hacer backup. Esto es importante ya que en mi caso los datos no se había perdido, solo se había sobreescrito los 32 primeros KBytes de sda2, entonces hacer algo inapropiado sobre el disco podría empeorarlo.</p>
<p><strong>Busqueda de los backup del superblock</strong><br />
Una vez hecho el backup (bueno, esto se puede hacer también antes del backup) con <a href="http://www.cgsecurity.org/wiki/TestDisk">testdisk</a> seleccionamos HD, tipo de tabla de particiones, le damos a &#8220;Advanced&#8221; seleccionamos la partición ext2/3 (supongo que con ext2 también vale, son fs identicos, solo que ext3 incluye<a href="http://es.wikipedia.org/wiki/Journaling"> journaling</a> y ext2 no, y no me pregunteis que es que no lo se) y le damos a &#8220;Superblock&#8221;, esto buscara en la partición los &#8220;Superbloques&#8221; de backup que hay esparcidos por todo el disco, por si nos pasa esto xD.<br />
Cuanto termine nos dará una tabla de números, que habrá que copiar para luego indicarle a fsck.ext3 donde puede haber un superbloque de repuesto.<br />
<img src="http://img534.imageshack.us/img534/4858/supeblock.jpg" alt="" /><br />
Para saber mas de como funciona el sistema de ficheros ext2 puedes ver este <a href="http://sopa.dis.ulpgc.es/ii-dso/leclinux/fs/superbloque/superbloque.pdf">PDF [111 Transparencias]</a><br />
Apunta todos los &#8220;superblock&#8221; y el &#8220;blocksize&#8221; (con una vez que apuntes el blocksize es suficiente, ya que debería ser siempre el mismo) que nos hacen falta ahora despues.</p>
<p><strong>Restaurar el superblock</strong><br />
Para restaurar el superblock, solo tienes que ejecutar algún live cd que tenga fsck (digo live cd, porque entiendo que si estas leyendo esto es que te has cargado el sistema de ficheros raiz, si no es así lo puedes hacer desde tu instalación normal de linux)<br />
Una vez tengas una consola funcionando, ejecutamos fsck:<br />
<strong>/sbin/fsck.ext3 -b [superblock] -B [blocksize] /dev/hda1</strong><br />
Donde [superblock] reemplazar por uno de los bloques que nos dio testdisk. Recomiendo uno alto, ya que si te ha pasado como en mi caso, es mas probable que se halla afectad un superblock del principio que del final. Donde [blocksize] el tamaño de cada bloque, normalmente 1024, 2048 o 4096.<br />
<span style="color: #ff0000;"><strong>Donde hda1 reemplazar por la particion a reparar.</strong></span>Ojo con esto, que por no fijarme bien en que unidad ponía me carge el sistema de archivos.<br />
Fsck se pone a trabajar&#8230; nos empezara a sacar errores y nos preguntara que si queremos repararlos, le decimos que si a todo, y cuando termine el sistema de archivos en cuestión se podrá montar con normalidad.</p>
<p><a name="grano"></a><br />
<strong>Resumiendo</strong><br />
Para Recuperar el superblock necesitamos:<br />
- <a href="http://www.cgsecurity.org/wiki/TestDisk">TestDisk</a><br />
- fsck (viene con <a href="http://e2fsprogs.sourceforge.net/">e2fsprogs</a> y con RIP liveCD)<br />
Opcional<br />
- <a href="http://clonezilla.org/">Clonezilla</a> (si queremos hacer backup)<br />
- <a href="http://www.tux.org/pub/people/kent-robotti/looplinux/rip/">RIP liveCD</a> (si no tenemos donde ejecutar testdisk ni fsck)</p>
<p><strong>Procedimiento</strong><br />
- <a href="http://www.cgsecurity.org/wiki/Busqueda_Avanzada_del_Superblock_de_Backup_ext2_ext3">Halla los superbloques con testdisk (en Advanced)</a><br />
- Restauralo con fsck: /sbin/fsck.ext3 -b [superblock] -B [blocksize] /dev/[partición]</p>
<p><strong><span style="color: #ff0000;">Cosas a tener en cuenta</span></strong><br />
HACER BACKUP&#8217;S DE TODO</p>
<p><strong><span style="color: #ff0000;">Como diagnosticar que le pasa a un disco</span></strong><br />
- Ver que dice mount<br />
- Ver que dice fsck<br />
- Ver que dice <a href="http://www.brzitwa.de/mb/gpart/index.html">gpart</a> (sin opciones, solo dispositivo) No tiene nada que ver con gparted.<br />
- Ver que dice TestDisk, pero no escribir cambios, hasta que estemos seguros.<br />
Tomar una decisión precipitada puede llevarnos a empeorarlo mas.<br />
Usar mucho <a href="http://google.es">google</a>, y si hace falta (como es mi caso) buscar información sobre como funciona el FileSystem y así poder averiguar que ha pasado.</p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/recuperar-particion-ext2-o-ext3-recuperar-superblock/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como cambiar unas teclas por otras (Ahora en Linux)</title>
		<link>http://pushthebutton.es/archivos/como-cambiar-unas-teclas-por-otras-ahora-en-linux</link>
		<comments>http://pushthebutton.es/archivos/como-cambiar-unas-teclas-por-otras-ahora-en-linux#comments</comments>
		<pubDate>Sun, 20 Dec 2009 06:59:06 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=174</guid>
		<description><![CDATA[Ya cansado de windows, me puse Debian GNU/Linux en el portátil. La configuración ha sido muy sencilla, no he tenido muchos problemas (relativamente). Ya lo último que me faltaba para estar igual o mejor que en linux era cambiar mis teclas de inicio y fin por re pag y av pag respectivamente. A si que [...]]]></description>
			<content:encoded><![CDATA[<p>Ya cansado de windows, me puse <a href="http://debian.org">Debian GNU/Linux</a> en el portátil. La configuración ha sido muy sencilla, no he tenido muchos problemas (relativamente). Ya lo último que me faltaba para estar igual o mejor que en linux era cambiar mis teclas de inicio y fin por re pag y av pag respectivamente.<br />
A si que investigando por google, hoy di con la solución (llevo varios días tras ello, pero hasta hoy no funcionó).<br />
Gracias a la lista de <a href="http://www.mail-archive.com/debian-user-spanish@lists.debian.org/msg181033.html">debian</a> y a <a href="http://cweiske.de/howto/xmodmap/allinone.html">esta guía</a> lo he conseguido. Como?<br />
<span id="more-174"></span><br />
Primero hay que averiguar cual es el keycode de la tecla(s) en cuestion. Para ello usamos el comando xev:<br />
<code>Vostro:/home/alwar#  xev</code></p>
<p>Este nos abre una ventana y según movamos el ratón por ella o presionemos teclas irán saliendo mensaje en la consola.<br />
Presionamos la tecla que queramos averiguar y no saldrá algo como esto:<br />
<code><br />
KeyPress event, serial 33, synthetic NO, window 0x4000001,<br />
&nbsp;&nbsp;&nbsp;root 0x13b, subw 0x0, time 22797201, (168,-8), root:(173,41),<br />
&nbsp;&nbsp;&nbsp;state 0x0, keycode 105 (keysym 0xff57, End), same_screen YES,<br />
&nbsp;&nbsp;&nbsp;XLookupString gives 0 bytes:<br />
&nbsp;&nbsp;&nbsp;XmbLookupString gives 0 bytes:<br />
&nbsp;&nbsp;&nbsp;XFilterEvent returns: False</code><br />
<code><br />
KeyRelease event, serial 33, synthetic NO, window 0x4000001,<br />
&nbsp;&nbsp;&nbsp;root 0x13b, subw 0x0, time 22797342, (168,-8), root:(173,41),<br />
&nbsp;&nbsp;&nbsp;state 0x0, keycode 105 (keysym 0xff57, End), same_screen YES,<br />
&nbsp;&nbsp;&nbsp;XLookupString gives 0 bytes:<br />
&nbsp;&nbsp;&nbsp;XFilterEvent returns: False<br />
</code><br />
Nos fijamos donde pone keycode 105. Ese es el código que necesitamos asociar a un <a href="http://zator.com/Hardware/H7_1_2bw1.htm">keysym</a><br />
En esa página vienen muchas constantes simbólicas asociadas a un kernel 2.4. Los números en hexadecimal no nos valen para nada, quedaros solo con el nombre de la tecla.</p>
<p>Una vez halláis recopilado los keycodes y keysyms pocederemos a crear un archivo muy sencillo con la estructura:<br />
KEYCODE #keycode = keysym</p>
<p>En mi caso quedó esto:<br />
<code>keycode 99 = Home<br />
keycode 105 = End<br />
keycode 97 = Prior<br />
keycode 103 = Next<br />
</code></p>
<p>Lo guardáis donde queráis (preferiblemente en /home/user/.xmodmap) y lo probamos con:<br />
<code>xmodmap /home/user/.xmodmap</code><br />
E inmediatamente podéis probar si funcionan los cambios sobre el teclado. Si no funciona, revisar el archivo o los keycodes/keysym. Yo al principio usba los keycodes dados por showkey -k y no me funcionaba correctamente (me daba codigos pertenecientes a otras teclas).</p>
<p>Si os funciona, pues añadirlo a algún script de inicio o donde corresponda a vuestro entorno de escritorio (para gnome en Sistema > Preferencias > Sesiones se pueden añadir comandos personalizado para ejecutar al inicio.)</p>
<p>Feliz Navidad!</p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/como-cambiar-unas-teclas-por-otras-ahora-en-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como cambiar unas teclas por otras (KeyTweak Remapper)</title>
		<link>http://pushthebutton.es/archivos/como-cambiar-unas-teclas-por-otras-keytweak-remapper</link>
		<comments>http://pushthebutton.es/archivos/como-cambiar-unas-teclas-por-otras-keytweak-remapper#comments</comments>
		<pubDate>Sun, 18 Oct 2009 20:52:01 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Electronica y Hardware]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Scripts y Programacion]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=165</guid>
		<description><![CDATA[Me he comprado un dell Vostro 1520 como portatil para ir a la universidad. El cacharro va muy bien equipado y visualmente es elegante y sencillo. Al abrirlo (descubres el primer defecto, alguno tenía que tener) ves que el teclado es mas pequeño, pero no, solo es un efecto visual de tener los altavoces a [...]]]></description>
			<content:encoded><![CDATA[<p>Me he comprado un dell Vostro 1520 como portatil para ir a la universidad. El cacharro va muy bien equipado y visualmente es elegante y sencillo. Al abrirlo (descubres el primer defecto, alguno tenía que tener) ves que el teclado es mas pequeño, pero no, solo es un efecto visual de tener los altavoces a los lados del teclado y un biselado muy pronunciado en las teclas.<br />
<span id="more-165"></span><br />
Entonces a la hora de programar, (linea arriba, linea abajo, borrar, escrbiri borrar&#8230;..) te das cuenta de que te has equivocado de portatil y tenias que haber elegido uno con teclado completo. Lo piensas para dentro y no quieres reconocer que te has equivocado, no puedes, has hecho una arriesgada inversion que al menos debe durate para toda la carrera (o mas, preferentemente). Sientes que te has equivocado y piensas: &#8220;ya me acostumbrare a tener que cruzar todo el teclado para darle a inicio (ir al principio de la linea) o fin&#8230; Pero como no quieres esperar a acostumbrarte, pones tus neuronas en marcha y le preguntas a google. Y ahí estaba la solución, (como ese 99% de las veces).</p>
<p><a href="http://webpages.charter.net/krumsick/">KeyTweak</a> es un programa que puedes utilizar para desactivar telcas que no quieres que hagan nada, o simplemente porque quieres que cuando pulses la p escriba q. O como en mi caso, que tu teclado tiene las teclas inicio y fin muy lejos de los cursores y decides que &#8216;Re Pag&#8217; y &#8216;Av Pag&#8217; seran &#8216;Inicio&#8217; y &#8216;Fin&#8217; respectivamente.<br />
<img class="aligncenter" title="RePag AvPag" src="http://pushthebutton.es/wp-content/uploads/2009/10/IMG_0210.JPG" alt="" width="500" /></p>
<p><img class="aligncenter" title="Inicio Fin" src="http://pushthebutton.es/wp-content/uploads/2009/10/IMG_0211.JPG" alt="" width="500" /></p>
<p>Ahora solo falta poder cambiarles las pegatinas y que correspondiesen las teclas con lo que hacen, pero todo no se puede tener en esta vida.</p>
<p><span style="color: #ff9900;"><strong>Como funcioan KeyTweak:</strong></span></p>
<p>Te bajas el programa de su página, lo instalas y lo abres. Tendras una interfaz como esta:</span></span></p>
<p style="text-align: center;"><a href="http://pushthebutton.es/wp-content/uploads/2009/10/KeyTweak_GUI.PNG"><img class="aligncenter" title="GUI KeyTweak" src="http://pushthebutton.es/wp-content/uploads/2009/10/KeyTweak_GUI.PNG" alt="" width="539" height="353" /></a></p>
<p>El programa basicamente cambia unas teclas por otras. Y lo puedes hacer con todas las teclas de telcado. Esto lo puedes hace de 3 formas. Con la interfaz principal (el teclado que sale dibujado y el select de abajo), con el full teach mode y con el half teach mode. Todos hacen exactamente lo mismo, lo que de una forma u otra.  Yo use el full teach mode porque es el mas sencillo a mi parecer. Para abrir la ventana del Full Teach Mode hay un boton abajo de la interfaz principal. Al pincharlo se abre otra ventana con 3 botones, el de arriba es para empezar el scaneo, y los de abajo son para mapear o para cancelar.</p>
<p><a href="http://pushthebutton.es/wp-content/uploads/2009/10/FullTeachMode.PNG"><img class="alignnone" title="Full Teach Mode KeyTweak" src="http://pushthebutton.es/wp-content/uploads/2009/10/FullTeachMode.PNG" alt="" width="539" height="353" /></a></p>
<p>Para cambiar una tecla por otra pulsamos el boton &#8220;Begin Teach Mode&#8221; y acontinuación pulsamos la tecla que queremos cambiar de lugar, nos aparecera el &#8220;scan code&#8221; de la tecla pulsada en un TextBox, a continuación pulsamos la tecla a donde queremos llevar la tecla anterior y le damos al boton de &#8220;Remap key #1 to Key #2&#8243;. Volver a dar a &#8220;Full teach mode&#8221; y repetir el paso con las demas teclas que queramos cambiar, y recordar asignar otras teclas para las teclas que cambieis, es decir, si pongo el &#8220;fin&#8221; en el &#8220;av pag&#8221; no olvidar poner en otro lugar el &#8220;av pag&#8221; (por ejemplo en &#8220;fin&#8221;) ya que si no tendriamos dos teclas &#8220;fin&#8221;.</p>
<p>Una vez terminados todos los cambios, en la interfaz principal pinchas en &#8220;apply&#8221;. El programa os preguntara si quereis reiniciar ya que es necesario reiniciar para que se hagan efectivos los cambios. Una vez aplicados los cambios cuando abramos el programa en la parte de arriba del programa nos saldrá una lista de las teclas cambiadas y un boton para restaurar el teclado y dejarlo todo como antes.</p>
<p><a href="http://webpages.charter.net/krumsick/KeyTweak%20Manual.pdf">Manual del programa</a> [PDF 8 paginas 238 Kb]</p>
<p><a href="http://webpages.charter.net/krumsick/">Web del Programa</a></p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/como-cambiar-unas-teclas-por-otras-keytweak-remapper/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalar linux desde memoria USB</title>
		<link>http://pushthebutton.es/archivos/instalar-linux-desde-memoria-usb</link>
		<comments>http://pushthebutton.es/archivos/instalar-linux-desde-memoria-usb#comments</comments>
		<pubDate>Fri, 25 Sep 2009 23:25:30 +0000</pubDate>
		<dc:creator>Alwar</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[HowTo]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://pushthebutton.es/?p=159</guid>
		<description><![CDATA[Esta semana estuve montando un ordenador nuevo y me surgio el problema de que la placa base no me reconocia el lector de cd (el disco duro al ser SATA no hubo problemas) a si que tuve que ingeniarmelas para poder instalar debian en la maquina nueva. A continuacón voy a describir el metodo que [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana estuve montando un ordenador nuevo y me surgio el problema de que la placa base no me reconocia el lector de cd (el disco duro al ser SATA no hubo problemas) a si que tuve que ingeniarmelas para poder instalar debian en la maquina nueva.</p>
<p><img class="aligncenter size-full wp-image-160" title="splash_debian" src="http://pushthebutton.es/wp-content/uploads/2009/09/splash1.png" alt="splash_debian" width="500" height="" /></p>
<p>A continuacón voy a describir el metodo que seguí para conseguirlo suponiendo que lo crearemos desde un SO Windows(R).<br />
<strong>Necesitamos:</strong><br />
Un pendrive mayor o igual a 256 mb<br />
<a href="http://www.kernel.org/pub/linux/utils/boot/syslinux/">syslinux</a><br />
<a href="http://ftp.nl.debian.org/debian/dists/testing/main/installer-i386/current/images/hd-media/">boot.img.gz</a> <span style="color: #ff0000;">**</span><br />
<a href="http://ftp.nl.debian.org/debian/dists/testing/main/installer-i386/current/images/hd-media/">initrd.gz </a><span style="color: #ff0000;"> **</span><br />
<a href="http://ftp.nl.debian.org/debian/dists/testing/main/installer-i386/current/images/hd-media/">vmlinuz </a><span style="color: #ff0000;"> **</span><br />
imagen de un <a href="http://www.debian.org/releases/lenny/debian-installer/">cd de instalación</a> de la misma version que el boot.img.gz<span style="color: #ff0000;">*</span></p>
<p><span style="color: #ff0000;">* </span>Recomiendo usar una imagen netinstall ya que son menores de 256 mb, y el archivo boot.img.gz al parecer crea al arrancar un disco virtual de solo 256 mb, osea que si el pendrive es mayor, no sirve de nada.</p>
<p><span style="color: #ff0000;">** </span>Los enlaces para boot.img.gz, initrd.gz y vmlinuz dados anteriormente son para la arquitectura i386 de la rama testing. Si deseas instalar otra arquitectura (amd64&#8230;) u otra rama, (stable, sid&#8230;)  navega por el ftp y baja la que corresponda para tu arquitectura y rama que desees instalar. Recuerda que deben coincidir arquitectura y version de estos archivos con la imagen del cd de instalación.</p>
<p>Una vez descargados los archivos, descomprimimos syslinux y ejecutamos:<br />
<code>./syslinux/win32/syslinux.exe -f E:</code></p>
<p>Donde E: pon la letra de la unidad donde tengas el pendrive.<br />
Depues creamos en la raiz del pendrive un archivo llamado syslinux.cfg con el siguiente contenido:<br />
<code>default vmlinuz<br />
append initrd=initrd.gz</code></p>
<p>Despues copiar boot.img.gz, initrd.gz vmlinuz y la imagen iso a la raiz del pendrive. Y ya está! solo queda que arranques el pc desde el pendrive y seguir los pasos del instalador.</p>
<p>Mas información en <a href="http://www.esdebian.org/wiki/instalacion-memoria-usb">wiki.esDebian</a></p>
]]></content:encoded>
			<wfw:commentRss>http://pushthebutton.es/archivos/instalar-linux-desde-memoria-usb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
