<?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>btz</title>
	<atom:link href="http://www.betzerra.com.ar/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.betzerra.com.ar</link>
	<description>blog personal de Ezequiel Betzerra</description>
	<lastBuildDate>Wed, 11 Jan 2012 17:01:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fotoshop by Adobé</title>
		<link>http://www.betzerra.com.ar/2012/01/fotoshop-by-adobe/</link>
		<comments>http://www.betzerra.com.ar/2012/01/fotoshop-by-adobe/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 16:59:26 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=376</guid>
		<description><![CDATA[Cómo sería Adobe Photoshop si fuese un producto de&#8230; ¿belleza?. Lo que más me gusta de este video es que muestra casos reales de portadas de revistas en donde el uso de PS fue más que notable.]]></description>
			<content:encoded><![CDATA[<p>Cómo sería Adobe Photoshop si fuese un producto de&#8230; ¿belleza?.<br />
Lo que más me gusta de este video es que muestra casos reales de portadas de revistas en donde el uso de PS fue más que notable.<br />
<iframe src="http://player.vimeo.com/video/34813864?byline=0&amp;portrait=0" width="549" height="309" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2012/01/fotoshop-by-adobe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMD Logo: Update</title>
		<link>http://www.betzerra.com.ar/2012/01/cmd-logo-update/</link>
		<comments>http://www.betzerra.com.ar/2012/01/cmd-logo-update/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 01:00:37 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=370</guid>
		<description><![CDATA[Este tipo de cosas son las que me impulsan a seguir creando. Gracias a CMD por la difusión. Estoy muy contento por haber obtenido un feedback tan positivo.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.betzerra.com.ar/wp-content/uploads/2012/01/Screen-Shot-2011-12-27-at-11.55.54-PM.png"><img class="aligncenter size-full wp-image-371" title="Screen Shot 2011-12-27 at 11.55.54 PM" src="http://www.betzerra.com.ar/wp-content/uploads/2012/01/Screen-Shot-2011-12-27-at-11.55.54-PM.png" alt="" width="424" height="260" /></a></p>
<p>Este tipo de cosas son las que me impulsan a seguir creando. Gracias a CMD por la difusión. Estoy muy contento por haber obtenido un feedback tan positivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2012/01/cmd-logo-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Zomboid, un RPG Zombie Survival</title>
		<link>http://www.betzerra.com.ar/2012/01/project-zomboid-un-rpg-zombie-survival/</link>
		<comments>http://www.betzerra.com.ar/2012/01/project-zomboid-un-rpg-zombie-survival/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 00:34:47 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[indie]]></category>
		<category><![CDATA[juegos]]></category>
		<category><![CDATA[Project Zomboid]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=364</guid>
		<description><![CDATA[Posiblemente el proyecto que más llamó mi atención en lo que es el mundo de los videojuegos indie es Project Zomboid: un juego en el que lo único que hay que hacer es sobrevivir&#8230; ¿qué tan difícil puede ser? Ok, &#8230; <a href="http://www.betzerra.com.ar/2012/01/project-zomboid-un-rpg-zombie-survival/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Posiblemente el proyecto que más llamó mi atención en lo que es el mundo de los videojuegos indie es <strong>Project Zomboid</strong>: un juego en el que lo único que hay que hacer es sobrevivir&#8230; ¿qué tan difícil puede ser?</p>
<p>Ok, no es tan sencillo. <em>&#8220;Eventualmente vas a morir así que acostumbrate&#8221;</em> es una frase que hay que tener en cuenta antes de empezar a jugar; suicidio, morir quemado en un incendio <em>(¡no olviden apagar el horno cuando preparan una sopa! ¡Es en serio!)</em>, ser asesinado por otros sobrevivientes, o terminar como el plato principal de una decena de zombies son varias de las tantas maneras de perder el juego. Tengan cuidado en todo momento.</p>
<p><a href="http://www.betzerra.com.ar/wp-content/uploads/2012/01/Screen-Shot-2011-12-24-at-5.32.38-PM.png"><img class="aligncenter size-large wp-image-365" title="Screen Shot 2011-12-24 at 5.32.38 PM" src="http://www.betzerra.com.ar/wp-content/uploads/2012/01/Screen-Shot-2011-12-24-at-5.32.38-PM-1024x678.png" alt="" width="584" height="386" /></a></p>
<p>Project Zomboid es todo menos sencillo, la complejidad que hay detrás de este juego llamó muchísimo mi atención: sistema de crafting de elementos (un feature muy popular en  Minecraft), NPCs que pueden querer aliarse con vos o matarte según su personalidad, ciclo de día/noche, entorno que cambia con el tiempo (generadores de electricidad que fallan, batallones de militares que aparecen para &#8220;limpiar&#8221; la ciudad), co-op multiplayer&#8230; ¿sigo?</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/WtEZArEji4U" frameborder="0" allowfullscreen></iframe></p>
<p>El juego aún parece estar lejos de una versión definitiva pero ya se puede bajar una <a href="https://github.com/zimbatm/project-zomboid-demo" target="_blank">demo muy interesante</a>. Puede jugarse en una Mac, Windows, Linux o en un browser.</p>
<p><iframe width="420" height="315" src="http://www.youtube.com/embed/CMryy7MtoVQ" frameborder="0" allowfullscreen></iframe></p>
<p>¡Ah! Otro dato muy interesante es que fue pensado desde un primer principio para ser extendido y generar <a href="http://es.wikipedia.org/wiki/Mod_(videojuegos)" target="_blank">mods</a>, incluso ya posee una gran comunidad aportando al proyecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2012/01/project-zomboid-un-rpg-zombie-survival/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Week-Log #3</title>
		<link>http://www.betzerra.com.ar/2012/01/week-log-3/</link>
		<comments>http://www.betzerra.com.ar/2012/01/week-log-3/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 19:54:54 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Week-Log]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=361</guid>
		<description><![CDATA[Vamos a ignorar el hecho de que me salteé una semana. Shall we? All We Ever Wanted Was Everything, un nuevo tema de MGMT. Visualmente delicioso. Super Crate Box apareció en iOS esta semana y ya consiguió 5 millones de &#8230; <a href="http://www.betzerra.com.ar/2012/01/week-log-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vamos a ignorar el hecho de que me salteé una semana. Shall we?</p>
<ul>
<li><a href="http://thefoxisblack.com/2012/01/02/all-we-ever-wanted-was-everything-by-mgmt-directed-by-oneedo/" target="_blank">All We Ever Wanted Was Everything, un nuevo tema de MGMT</a>. Visualmente delicioso.</li>
<li><a href="http://toucharcade.com/2012/01/05/super-crate-box-crash-fix-released/" target="_blank">Super Crate Box apareció en iOS esta semana y ya consiguió 5 millones de &#8220;crates&#8221; colectados</a></li>
<li><a href="http://www.niubie.com/2012/01/el-hyperion-de-starcraft-2-es-realizado-con-piezas-de-lego/" target="_blank">El Hyperion de Starcraft 2 es realizado con piezas de LEGO</a>, Yamato Cannon no incluído.</li>
<li><a href="http://poppytalk.blogspot.com/2012/01/what-happens-when-you-give-kids.html?m=0" target="_blank">Increíble instalación interactiva de Yayoi Kusama</a></li>
<li><a href="http://tjrus.com/iphone" target="_blank">iPhone 4 en puro CSS3</a>, inservible pero muy lindo de ver.</li>
<li><a href="http://www.hongkiat.com/blog/beautiful-fireworks-photos-new-year-celebration/" target="_blank">15 fotografías de fuegos artificiales de fin de año</a>: y vos pensabas que tu batería de Júpiter era EL espectáculo</li>
<li><a href="http://www.designtaxi.com/news/351240/Honest-Logos-Return-to-Tell-The-Truth/" target="_blank">Honest Logos Return To Tell The Truth</a>. They always do.</li>
<li><a href="http://irinawerning.com/bttf2/back-to-the-future-2-2011/" target="_blank">Irina Werning con su serie de fotos &#8220;Back To The Future 2&#8243;</a>, nos muestra que no pasó tanto tiempo</li>
<li><a href="http://mashable.com/2011/12/27/glassdoor-interview-questions-2011/">The 9 Oddest Job Interview Questions Asked at Tech Companies in 2011</a></li>
<li><a href="http://hellogeeky.com/2012/01/08/starbucks-abre-un-local-hecho-de-contenedores-reciclados/" target="_blank">Starbucks abre un local hecho de contenedores reciclados</a>. Me dejó pensando&#8230; ¿Puma no había hecho eso?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2012/01/week-log-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Feliz 2012</title>
		<link>http://www.betzerra.com.ar/2012/01/feliz-2012/</link>
		<comments>http://www.betzerra.com.ar/2012/01/feliz-2012/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 06:30:14 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=351</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.betzerra.com.ar/wp-content/uploads/2012/01/unknown.png"><img class="aligncenter size-full wp-image-352" title="unknown" src="http://www.betzerra.com.ar/wp-content/uploads/2012/01/unknown.png" alt="" width="669" height="862" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2012/01/feliz-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User vs Copyright</title>
		<link>http://www.betzerra.com.ar/2011/12/user-vs-copyright/</link>
		<comments>http://www.betzerra.com.ar/2011/12/user-vs-copyright/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 02:30:02 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Destacados]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=345</guid>
		<description><![CDATA[Un video que explica de una manera muy original de qué se trata la Copyright Term Extension Act, para qué sirve Creative Commons y qué es el Fair Use, entre otras cosas. BTW, Si te interesa el tema no podés &#8230; <a href="http://www.betzerra.com.ar/2011/12/user-vs-copyright/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><iframe src="http://www.youtube.com/embed/BYcaxm8IugI" frameborder="0" width="560" height="315"></iframe></p>
<p>Un video que explica de una manera muy original de qué se trata la <a href="http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act" target="_blank">Copyright Term Extension Act</a>, para qué sirve Creative Commons y qué es el Fair Use, entre otras cosas.</p>
<p>BTW, Si te interesa el tema no podés dejar de ver <a href="http://www.betzerra.com.ar/2011/01/rip-a-remix-manifesto/" target="_blank">RiP: A REMIX MANIFESTO</a> y <a href="http://www.everythingisaremix.info/watch-the-series/" target="_blank">Everything is Remix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2011/12/user-vs-copyright/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processing: Logo de CMD</title>
		<link>http://www.betzerra.com.ar/2011/12/processing-logo-de-cmd-que-se-deforma/</link>
		<comments>http://www.betzerra.com.ar/2011/12/processing-logo-de-cmd-que-se-deforma/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 01:51:14 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[cmd]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=332</guid>
		<description><![CDATA[Logo del CMD (Centro Metropolitano de Diseño) que se deforma de acuerdo a la intensidad del sonido ambiente que captura la computadora. A continuación pueden ver un video (pido perdón de antemano por la mala calidad de sonido) en dónde &#8230; <a href="http://www.betzerra.com.ar/2011/12/processing-logo-de-cmd-que-se-deforma/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.betzerra.com.ar/wp-content/uploads/2011/12/cmd.png"><img class="aligncenter size-large wp-image-333" title="cmd" src="http://www.betzerra.com.ar/wp-content/uploads/2011/12/cmd-1024x488.png" alt="" width="584" height="278" /></a></p>
<p>Logo del <strong>CMD</strong> (Centro Metropolitano de Diseño) que se deforma de acuerdo a la intensidad del sonido ambiente que captura la computadora.</p>
<p>A continuación pueden ver un video (pido perdón de antemano por la mala calidad de sonido) en dónde muestra cómo funciona.</p>
<p>Espero que a @cmdbsas le guste y lo utilice en alguna ocasión <img src='http://www.betzerra.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><object width="584" height="329" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="flashvars" value="intl_lang=en-us&amp;photo_secret=5f51e32e12&amp;photo_id=6578513427&amp;flickr_show_info_box=true&amp;hd_default=false" /><param name="allowFullScreen" value="true" /><param name="src" value="http://www.flickr.com/apps/video/stewart.swf?v=109786" /><param name="allowfullscreen" value="true" /><embed width="584" height="329" type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=109786" flashvars="intl_lang=en-us&amp;photo_secret=5f51e32e12&amp;photo_id=6578513427&amp;flickr_show_info_box=true&amp;hd_default=false" allowFullScreen="true" allowfullscreen="true" /></object></p>
<p><a href="http://www.btz-sandbox.com.ar/stuff/CmdAudio_windows.zip">Bajar para Windows</a></p>
<p><a href="http://www.btz-sandbox.com.ar/stuff/CmdAudio_macosx.zip">Bajar para OSX</a></p>
<p><em>Código fuente después del corte</em></p>
<p><span id="more-332"></span></p>
<p><strong>Nota:</strong> El código, si bien no es muy largo, tiene varios puntos interesantes para explicar: transformaciones lineales, la biblioteca minim para análisis de sonido, la biblioteca fullscreen, entre otras cosas. Si leés el código y hay algo en particular que te llama la atención o no entendiste, dejá un comentario o enviame un email a ezequiel@betzerra.com.ar</p>
<pre class="brush: java; title: ; notranslate">//  CMDAudio.pde
//
//  @betzerra
//  www.betzerra.com.ar

//  Importa la biblioteca para pantalla completa
import fullscreen.*;

//  Importa bibliotecas relacionadas con el analisis de audio
import ddf.minim.*;
import ddf.minim.signals.*;
import ddf.minim.analysis.*;
import ddf.minim.effects.*;

Minim minim;
AudioInput audioInput;
FFT fftMix;
FullScreen fs;

AudioBezierEllipse aBezierEllipse;
AudioBezierEllipse aBezierEllipse2;
AudioBezierEllipse aBezierEllipse3;

color controlPtCol = #222222;
color anchorPtCol = #BBBBBB;

void setup() {
  //  Setea el tamanio de la ventana y el modo de renderizado
  size(800, 600, P2D);

  //  Setea la configuracion para la captura de audio
  minim = new Minim(this);
  audioInput = minim.getLineIn(Minim.STEREO, 256);
  fftMix = new FFT(audioInput.bufferSize(), audioInput.sampleRate());

  println (&quot;BufferSize: &quot; + audioInput.bufferSize() + &quot; SampleRate: &quot; + audioInput.sampleRate());

  //  AudioBezierEllipse es la clase que representa a cada uno de los circulos
  aBezierEllipse = new AudioBezierEllipse(width/2, height/2, 64, 210);
  aBezierEllipse.enableTangentLinesAndNode(false);
  aBezierEllipse.setStrokeColor(color(0, 0, 0));
  aBezierEllipse.setFillColor(color(0, 0, 0));
  aBezierEllipse.enableFullFill(true);
  aBezierEllipse.enableFill(false);
  aBezierEllipse.setStrokeWeight(1);

  aBezierEllipse2 = new AudioBezierEllipse(width/2, height/2, 64, 140);
  aBezierEllipse2.enableTangentLinesAndNode(false);
  aBezierEllipse2.setStrokeColor(color(255, 255, 255));
  aBezierEllipse2.setFillColor(color(255,255,255));
  aBezierEllipse2.enableFullFill(true);
  aBezierEllipse2.enableFill(false);
  aBezierEllipse2.setStrokeWeight(1);

  aBezierEllipse3 = new AudioBezierEllipse(width/2, height/2, 64, 70);
  aBezierEllipse3.enableTangentLinesAndNode(false);
  aBezierEllipse3.setStrokeColor(color(237, 28, 36));
  aBezierEllipse3.setFillColor(color(237, 28, 36));
  aBezierEllipse3.enableFullFill(true);
  aBezierEllipse3.enableFill(false);
  aBezierEllipse3.setStrokeWeight(1);

  //  Suaviza el render
  smooth();

  //  Limita los cuadros por segundo a 30
  frameRate(30);

  //  Inicia el modo de pantalla completa
  fs = new FullScreen(this);
  fs.enter();
}

void draw() {
  //  Pinta el fondo de color blanco
  background(255);

  fftMix.forward(audioInput.mix);

  pushMatrix();
  translate(width/2, height/2);
  pushMatrix();
  rotate(frameCount*0.01);
  translate(-width/2, -height/2);
  aBezierEllipse.update(fftMix);
  aBezierEllipse2.update(fftMix);
  aBezierEllipse3.update(fftMix);
  popMatrix();
  popMatrix();
}
</pre>
<pre class="brush: java; title: ; notranslate">
//  AudioBezierEllipse.pde
//
//  @betzerra
//  www.betzerra.com.ar

class AudioBezierEllipse extends BezierEllipse{
  float _fftMultiplier = 9;

  AudioBezierEllipse (float centerX, float centerY, int pointsQuantity, int aSize){
    super(centerX, centerY, pointsQuantity, aSize);
  }

  void setEllipse(float radius, float controlRadius, FFT aFft){
  _px = new float[_points];
  _py = new float[_points];
  _cx = new float[_points];
  _cy = new float[_points];
  _cx2 = new float[_points];
  _cy2 = new float[_points];

  float angle = 360.0/_points;
  float controlAngle1 = angle/3.0;
  float controlAngle2 = controlAngle1*2.0;
  for ( int i=0; i    _px[i] = _centerX+cos(radians(angle))*radius;
    _py[i] = _centerY+sin(radians(angle))*radius;
    _cx[i] = _centerX+cos(radians(angle+controlAngle1))*
      (controlRadius + aFft.getBand(i) * _fftMultiplier)/cos(radians(controlAngle1));
    _cy[i] = _centerY+sin(radians(angle+controlAngle1))*
      (controlRadius + aFft.getBand(i) * _fftMultiplier)/cos(radians(controlAngle1));
    _cx2[i] = _centerX+cos(radians(angle+controlAngle2))*
      (controlRadius + aFft.getBand(i) * _fftMultiplier)/cos(radians(controlAngle1));
    _cy2[i] = _centerY+sin(radians(angle+controlAngle2))*
      (controlRadius + aFft.getBand(i) * _fftMultiplier)/cos(radians(controlAngle1));

    //increment angle so trig functions keep chugging along
    angle+=360.0/_points;
  }

}

  void update(FFT aFft){
    drawEllipse();
    setEllipse(_size,_size, aFft);
  }

}
</pre>
<pre class="brush: java; title: ; notranslate">
//  BezierEllipse.pde
//
//  @betzerra
//  www.betzerra.com.ar

/*  BezierEllipse es un circulo o elipse dibujado a partir de curvas bezier
    luego en AudioBezierEllipse se alejan algunos nodos de estas curvas para
    &quot;deformarlas&quot; segun la intensidad del sonido */

class BezierEllipse {
  float _centerX;
  float _centerY;
  int _size;
  float _strokeWeight;
  color _strokeColor;
  color _fillColor;

  int _points;
  float[] _px, _py, _cx, _cy, _cx2, _cy2;
  boolean _isTangentLinesAndNodesEnabled;
  boolean _isFillEnabled;
  boolean _isFullFillEnabled;

  BezierEllipse (float centerX, float centerY, int pointsQuantity, int aSize) {
    _centerX = centerX;
    _centerY = centerY;
    _points = pointsQuantity;
    _isTangentLinesAndNodesEnabled = false;
    _size = aSize;
    _strokeColor = color(255, 255, 255);
    _isFillEnabled = false;
    _isFullFillEnabled = false;
    _fillColor = color(255, 255, 255);
    _strokeWeight = 1.125;
    setEllipse(_size, _size);
  }

  void enableTangentLinesAndNode (boolean aBoolean) {
    _isTangentLinesAndNodesEnabled = aBoolean;
  }

  void enableFill (boolean aBoolean) {
    _isFillEnabled = aBoolean;
  }

  void enableFullFill (boolean aBoolean) {
    _isFullFillEnabled = aBoolean;
  }

  void setFillColor (color aColor) {
    _fillColor = aColor;
  }

  void setStrokeColor (color aColor) {
    _strokeColor = aColor;
  }

  void setStrokeWeight (float aWeight){
    _strokeWeight = aWeight;
  }

  // fill up arrays with ellipse coordinate data
  void setEllipse(float radius, float controlRadius) {
    _px = new float[_points];
    _py = new float[_points];
    _cx = new float[_points];
    _cy = new float[_points];
    _cx2 = new float[_points];
    _cy2 = new float[_points];
    float angle = 360.0/_points;
    float controlAngle1 = angle/3.0;
    float controlAngle2 = controlAngle1*2.0;
    for ( int i=0; i      _px[i] = _centerX+cos(radians(angle))*radius;
      _py[i] = _centerY+sin(radians(angle))*radius;
      _cx[i] = _centerX+cos(radians(angle+controlAngle1))*
        controlRadius/cos(radians(controlAngle1));
      _cy[i] = _centerY+sin(radians(angle+controlAngle1))*
        controlRadius/cos(radians(controlAngle1));
      _cx2[i] = _centerX+cos(radians(angle+controlAngle2))*
        controlRadius/cos(radians(controlAngle1));
      _cy2[i] = _centerY+sin(radians(angle+controlAngle2))*
        controlRadius/cos(radians(controlAngle1));

      //increment angle so trig functions keep chugging along
      angle+=360.0/_points;
    }
  }

  void update() {
    drawEllipse();
    setEllipse(_size, _size);
  }

  void drawEllipse() {
    strokeWeight(_strokeWeight);
    stroke(_strokeColor);

    if (_isFillEnabled || _isFullFillEnabled) {
      fill(_fillColor);
      if (_isFullFillEnabled) {
        ellipse(_centerX, _centerY, _size*2, _size*2);
      }
    }
    else {
      noFill();
    }

    // create ellipse
    for (int i=0; i      if (i==_points-1) {
        bezier(_px[i], _py[i], _cx[i], _cy[i], _cx2[i], _cy2[i], _px[0], _py[0]);
      }
      else {
        bezier(_px[i], _py[i], _cx[i], _cy[i], _cx2[i], _cy2[i], _px[i+1], _py[i+1]);
      }
    }
    strokeWeight(.75);
    stroke(0);
    rectMode(CENTER);

    // control handles and tangent lines
    if (_isTangentLinesAndNodesEnabled) {
      for ( int i=0; i&lt; _points; i++) {         if (i==_points-1) {  // last loop iteration-close path           line(_px[0], _py[0], _cx2[i], _cy2[i]);         }         if (i&gt;0) {
          line(_px[i], _py[i], _cx2[i-1], _cy2[i-1]);
        }
        line(_px[i], _py[i], _cx[i], _cy[i]);
      }

      for ( int i=0; i&lt; _points; i++) {
        fill(controlPtCol);
        noStroke();
        //control handles
        ellipse(_cx[i], _cy[i], 4, 4);
        ellipse(_cx2[i], _cy2[i], 4, 4);

        fill(anchorPtCol);
        stroke(0);
        //anchor points
        rect(_px[i], _py[i], 5, 5);
      }
    }
  }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2011/12/processing-logo-de-cmd-que-se-deforma/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Week-Log #2</title>
		<link>http://www.betzerra.com.ar/2011/12/week-log-2/</link>
		<comments>http://www.betzerra.com.ar/2011/12/week-log-2/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 23:56:35 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Week-Log]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[indie games]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=328</guid>
		<description><![CDATA[Cumpliendo la promesa que hice la semana pasada (aunque un día más tarde por las fiestas), éstas son las noticias que más me llamaron la atención la semana pasada: Nike Sportwear presenta Hyperfuse en Argentina: creo que justo necesitaba zapatillas &#8230; <a href="http://www.betzerra.com.ar/2011/12/week-log-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Cumpliendo la promesa que hice la semana pasada (aunque un día más tarde por las fiestas), éstas son las noticias que más me llamaron la atención la semana pasada:</p>
<ul>
<li><a href="http://www.visioninvisible.com.ar/2011/12/22/nike-sportswear-hyperfuse-argentina/?utm_source=feed&amp;utm_campaign=no-leechers&amp;utm_medium=rss" target="_blank">Nike Sportwear presenta Hyperfuse en Argentina</a>: creo que justo necesitaba zapatillas nuevas <img src='http://www.betzerra.com.ar/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li><a href="http://thefoxisblack.com/2011/12/20/the-machook-a-place-to-hang-your-headphones/" target="_blank">The Machook, a place to hang your headphones</a>: no intentes esto con tu Mac Mini.</li>
<li><a href="http://blog.flickr.net/en/2011/12/20/thomas-shahans-spiders-in-national-geographic/" target="_blank">El portfolio de Thomas Shahans</a>: ¿sos aracnofóbico? Entonces no entres.</li>
<li><a href="http://www.joystiq.com/2011/12/16/indie-game-the-movie-showing-at-sxsw-creators-hosting-panel/" target="_blank">&#8220;Indie Game: The Movie&#8221; va a ser presentada en SXSW</a>: En Marzo del 2011, no puedo esperar a verla. El trailer pueden verlo <a href="http://vimeo.com/25268139" target="_blank">acá</a>.</li>
<li><a href="http://www.youtube.com/watch?feature=player_embedded&amp;v=TaNBuqSuNqk" target="_blank">Radwanderung</a>: o &#8220;el recorrido que @chompas <a href="https://twitter.com/#!/Chompas/status/149212454746988544" target="_blank">se muere por hacer pero no se anima</a>&#8220;</li>
<li><a href="http://lab.hakim.se/reveal-js/" target="_blank">reveal-js, a CCS 3D Slideshow</a>: wow&#8230; just wow</li>
<li><a href="http://phpqrcode.sourceforge.net/" target="_blank">PHP QR Code</a>: Una biblioteca open-source para generar códigos QR con PHP. Muy recomendable.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2011/12/week-log-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usar JSONKit y ASIHTTPRequest en una aplicación para lavar los platos (iOS)</title>
		<link>http://www.betzerra.com.ar/2011/12/usar-jsonkit-y-asihttprequest-en-una-aplicacion-para-lavar-los-platos-ios/</link>
		<comments>http://www.betzerra.com.ar/2011/12/usar-jsonkit-y-asihttprequest-en-una-aplicacion-para-lavar-los-platos-ios/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 02:52:33 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Destacados]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[ASIHTTPRequest]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[JSONKit]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=321</guid>
		<description><![CDATA[Hace unos días hice una aplicación para recordar quién fue el último que lavó los platos en la oficina (día a día nos vamos turnando) Si bien es una aplicación más que sencilla sirve como ejemplo para aprender algunas cosas: &#8230; <a href="http://www.betzerra.com.ar/2011/12/usar-jsonkit-y-asihttprequest-en-una-aplicacion-para-lavar-los-platos-ios/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hace unos días hice una aplicación para recordar quién fue el último que lavó los platos en la oficina (día a día nos vamos turnando)</p>
<p>Si bien es una aplicación más que sencilla sirve como ejemplo para aprender algunas cosas:</p>
<ol>
<li>Uso de JSONKit, un parser y serializador de JSON muy rápido.</li>
<li>ASIHTTPRequest, un framework para hacer requests HTTP sincrónicas y asincrónicas.</li>
<li>Enmascarar un UIImageView utilizando otra imagen.</li>
<li>Cómo implementar el patrón Singleton en Objective-C</li>
</ol>
<div>El código pueden verlo en GitHub: <a href="https://github.com/betzerra/OfficeHelper" target="_blank">https://github.com/betzerra/OfficeHelper</a></div>
<div></div>
<div>Cualquier comentario, sugerencia o consulta es bienvenida.</div>
<p><a href="http://www.betzerra.com.ar/wp-content/uploads/2011/12/Screen-Shot-2011-12-15-at-11.40.02-PM1.png"><img class="size-full wp-image-324 aligncenter" title="Screen Shot 2011-12-15 at 11.40.02 PM" src="http://www.betzerra.com.ar/wp-content/uploads/2011/12/Screen-Shot-2011-12-15-at-11.40.02-PM1.png" alt="" width="396" height="744" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2011/12/usar-jsonkit-y-asihttprequest-en-una-aplicacion-para-lavar-los-platos-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Week-Log #1</title>
		<link>http://www.betzerra.com.ar/2011/12/week-log-1/</link>
		<comments>http://www.betzerra.com.ar/2011/12/week-log-1/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 02:32:17 +0000</pubDate>
		<dc:creator>Betzerra</dc:creator>
				<category><![CDATA[Week-Log]]></category>

		<guid isPermaLink="false">http://www.betzerra.com.ar/?p=318</guid>
		<description><![CDATA[En un intento de revivir el blog y no perder la constancia en el proceso, se me ocurrió hacer posts semanales tal como hace @amartino en su blog uberbin.net The Moses Bridge por RO&#38;AD: Un puente poco convencional con un &#8230; <a href="http://www.betzerra.com.ar/2011/12/week-log-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En un intento de revivir el blog y no perder la constancia en el proceso, se me ocurrió hacer posts semanales tal como hace @amartino en su blog uberbin.net</p>
<ul>
<li><a href="http://thefoxisblack.com/2011/12/14/the-moses-bridge-by-road-architecten-couldnt-have-a-better-name/" target="_blank">The Moses Bridge por RO&amp;AD</a>: Un puente poco convencional con un nombre más que autodescriptivo.</li>
<li><a href="http://www.uberbin.net/archivos/desarrollo/shopper-tracker-analytics-para-el-mundo-real-hackeando-kinect.php" target="_blank">Shopper Tracker</a>: Un -más que INCREÍBLE- analytics para góndolas hecho por Argentinos, utilizando Kinect.</li>
<li><a href="http://vimeo.com/17150420" target="_blank">Dominó en Arduino</a>: Otra buena razón para empezar a programar para esa plataforma.</li>
<li><a href="http://www.joystiq.com/2011/12/14/south-parks-fifth-character-class-is-the-jew/" target="_blank">La 5ta clase del juego de rol de South Park sería &#8220;Judío&#8221;</a>: sería un híbrido entre monje y paladín, y sería más fuerte cuando esté cerca de morir (?)</li>
<li><a href="http://thenextweb.com/apple/2011/12/13/how-twitters-ios-5-integration-killed-friction-and-blew-up-discovrs-sharing-stats/?awesm=tnw.to_1CDbX&amp;utm_campaign=social%20media&amp;utm_medium=Spreadus&amp;utm_source=Facebook&amp;utm_content=How%20Twitter's%20iOS%205%20integration%20killed%20friction%20and%20blew%20up%20Discovr's%20sharing%20stats" target="_blank">Cómo la integración de iOS5 puede ayudar a tu aplicación</a>: no login=less friction=more shares=winning</li>
<li><a href="http://www.uberbin.net/archivos/web2-0/insertar-tweets-en-cualquier-sitio.php" target="_blank">Insertar tweets en cualquier lado</a>: Twitter y la nueva forma de embeber tweets en páginas; Algo que me llamó muchísimo la atención y no escuché comentar en ningún lado.</li>
<li><a href="http://blog.flickr.net/en/2011/12/15/events-of-2011-in-lego/" target="_blank">Flickr &#8211; Eventos del 2011 recreados en Lego</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.betzerra.com.ar/2011/12/week-log-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

