<?xml version='1.0' encoding='iso-8859-1'?><rss version='0.91'><channel><title>kile ^ stravaganza</title><link>http://kile.stravaganza.org</link><description>kile articles</description><language>en-us</language><copyright>copyright 2013 kile ^ stravaganza</copyright><item><title>Time for a quick hacktlon</title><link>http://kile.stravaganza.org/blog/post/time-for-a-quick-hacktlon</link><description>&lt;p&gt;There is no better excuse to learn a new  technology that put a deadline for a mini-project.&lt;/p&gt;
&lt;p&gt;So we did yesterday, my friend &lt;a href=&quot;http://viktorsan.weebly.com&quot;&gt;Victor&lt;/a&gt; and I decided to make a fast hacktlon to code a version of a simple game based. The chosen one was 3210 (Windows CE).&lt;/p&gt;
&lt;p&gt;You can view the results &lt;a href=&quot;http://kile.stravaganza.org/lab/hacktlon/1&quot;&gt;here&lt;/a&gt; (You could read the instructions of my version &lt;a href=&quot;http://kile.stravaganza.org/project/html5-tankball-game&quot;&gt;here&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;It has been quite productive and has achieved its goal, to learn a little more about javascript, canvas, animations, ...&lt;/p&gt;
&lt;p&gt;See you at the next :)&lt;/p&gt;</description><pubDate>Sun, 28 Apr 2013 19:11:31 -0700</pubDate></item><item><title>HTML5 DICOM Viewer. Layouts</title><link>http://kile.stravaganza.org/blog/post/html5-dicom-viewer-layouts</link><description>&lt;p&gt;This is a new &lt;em&gt;work in progress&lt;/em&gt; version of the DICOM Viewer I'm working on. I've rewritten a huge part of the code to be able to manage custom layouts. With the new architecture it's very easy to define new layout (I've defined already 13). 
&lt;/p&gt;&lt;p&gt;Everytime I create UI for a program I really care to make it easy to use, and one obvious step It was to create shortcuts for all the actions. This is something quite simple to implement but I find everyday in my job many application without them, making the UI slower to use by the user.&lt;/p&gt;
&lt;img src=&quot;http://kile.stravaganza.org/images/blog/dicom_layouts.jpg&quot;/&gt;
&lt;p&gt;The new layout implementation let you apply actions to: the current selected layer (by default), all the layers (pressing shift), or the custom selected layers (pressing ctrl+click).&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/KRyEL-T_wRU?fs=1&amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/KRyEL-T_wRU?fs=1&amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;I've also implemented basic layout text overlay which I hope to improve on next &lt;em&gt;WIP&lt;/em&gt;&lt;/p&gt;</description><pubDate>Mon, 01 Aug 2011 01:43:58 -0700</pubDate></item><item><title>HTML5 Canvas autoresize</title><link>http://kile.stravaganza.org/blog/post/html5-canvas-autoresize</link><description>&lt;p&gt;While developing the &lt;a href=&quot;http://kile.stravaganza.org/blog/post/html5-dicom-viewer-mip-mpr&quot;&gt;HTML5 DICOM Viewer&lt;/a&gt; I got some problems while designing the UI in HTML.&lt;/p&gt;
&lt;p&gt;One of those problems was how to manage the canvas resize according to the browser size.&lt;/p&gt;
&lt;p&gt;At least for me it wasn't so much trivial :) so I decided to post it so it could be useful for someone else.&lt;/p&gt;
&lt;p&gt;Basically what you have to do is to bind the &lt;strong&gt;onresize&lt;/strong&gt; event to your &lt;strong&gt;body&lt;/strong&gt;, once you catch the event you just need to resize the canvas using &lt;strong&gt;window.innerWidth&lt;/strong&gt;	and	&lt;strong&gt;window.innerHeight&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;I just needed to add little functionality to preserve aspect ratio and manage the toolbar &lt;strong&gt;div&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;If you want to try it just click &lt;a target=&quot;_blank&quot; href=&quot;lab/js/canvas_resize/&quot;&gt;here&lt;/a&gt; or check the following video to see how it works:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Hf3T2Palo58?fs=1&amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/Hf3T2Palo58?fs=1&amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
</description><pubDate>Sun, 10 Jul 2011 20:20:27 -0700</pubDate></item><item><title>HTML5 DICOM Viewer. Improvements</title><link>http://kile.stravaganza.org/blog/post/html5-dicom-viewer-mip-mpr</link><description>&lt;p&gt;I've implemented few rendering techniques for the DICOM Viewer. First of all I tried to implement a simple &lt;a href=&quot;http://en.wikipedia.org/wiki/X-ray_computed_tomography#Multiplanar_reconstruction&quot;&gt;MPR reconstruction&lt;/a&gt; to be able to see the three planes from a CT: axial, sagittal and coronal.&lt;/p&gt;
&lt;p&gt;Here's a little video showing this feature:&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/RnWXwRgsong?fs=1&amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/RnWXwRgsong?fs=1&amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;After that I tried to implement Z-projection rendering like MIP, MinIP, Average, etc. but I found that Canvas it's just so slow for this purpose. So I decided to reimplement all the rendering engine using WebGL.&lt;/p&gt;
&lt;p&gt;So I did it and I found a great speed improvement even in my old laptop.&lt;/p&gt;
&lt;p&gt;Apart from the Z-Projection technique I implemented an &lt;em&gt;enhance&lt;/em&gt; filter in order to sharp the image and get a better result:&lt;/p&gt;
&lt;img src=&quot;http://kile.stravaganza.org/images/blog/dicom_filters.jpg&quot;/&gt;
&lt;p&gt;And here you could see this last implementation in action (&lt;strong&gt;Please note that the bad quality is due to the codec compression while uploading to youtube&lt;/strong&gt;):&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/5BTTq8pAk4w?fs=1&amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/5BTTq8pAk4w?fs=1&amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
</description><pubDate>Wed, 15 Jun 2011 23:54:02 -0700</pubDate></item><item><title>HTML5 DICOM Viewer: First try</title><link>http://kile.stravaganza.org/blog/post/html5-dicom-viewer-first-try</link><description>&lt;p&gt;
I'm working healthcare software focused on radiology. I've tried many radiology images viewers, recently they're moving from the desktop to the web but all of them have something in common: you need to install something: java, activex, flash, ... 
So I decided to give a try to the HTML5 technologies and create a fully pluginless viewer.
&lt;/p&gt;
&lt;img src=&quot;http://kile.stravaganza.org/images/blog/html5dicom.jpg&quot;/&gt;
&lt;p&gt;
The main problem with medical images is that they're stored in &lt;a href=&quot;http://en.wikipedia.org/wiki/DICOM&quot;&gt;DICOM&lt;/a&gt; format. Basically is a binary format which metadata refering the patient data, study parameters, ... following by a 16 bit image data.
Due to those 16 bits per pixel the best way to manage it is to download the whole image in DICOM format and process it directly on the client side to render the final 8 bpp image.
Right now I'm developing the standard 2D manipulation tools, but I would like to try some 3D postprocessing in the future (Using &lt;a href=&quot;http://www.mrdoob.com&quot;&gt;mrdoob&lt;/a&gt;'s &lt;a href=&quot;https://github.com/mrdoob/three.js/&quot;&gt;three.js&lt;/a&gt; probably).
&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/qfWrwPcWXsE?fs=1&amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/qfWrwPcWXsE?fs=1&amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;The main drawbacks I've found using html5 is the differences between browsers of the webworker standard. Specially while communicating with the main thread using postMessage. I hope they (ffox) will fix this in the future :)&lt;/p&gt;</description><pubDate>Sun, 29 May 2011 15:51:13 -0700</pubDate></item><item><title>Presonus 1 Box</title><link>http://kile.stravaganza.org/blog/post/presonus-one-box</link><description>&lt;p&gt;So long time since last post :) I tried to avoid the typical &quot;this year i'll make blablabla&quot; that bloggers use to post first weeks of January, so I preferred to wait for something more interesting to say&lt;/p&gt;
&lt;p&gt;I'm still coding for fun as usual, doing some little android stuff and so on... but if there's something that I love as much as code or even more is music!&lt;/p&gt;
&lt;p&gt;I use to play guitar and I wanted to record some songs with somehow quality (Sadly just recording quality but not playing :P). So I to present to myself (I love myself so much) a very nice recording pack: &lt;a href=&quot;http://www.presonus.com/products/Detail.aspx?ProductId=60&quot;&gt;Presonus 1 box&lt;/a&gt; (&lt;a href=&quot;http://www.khrome.org/&quot;&gt;Thank you for advice me&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;images/blog/presonus1box.jpg&quot;/&gt;&lt;/p&gt;
&lt;p&gt;It cames with everything you need to record: a very nice soundcard with 2 microphone/line inputs with Phantom 48V, large condenser microphone, and monitor headphones.&lt;/p&gt;
&lt;p&gt;Along with that hardware, it also includes a license of Studio one software which I found very very easy to use and intuitive.&lt;/p&gt; 
&lt;p&gt;Not so much to say, just recorded few test, you can try them on the &lt;a href=&quot;/music&quot;&gt;music&lt;/a&gt; section where you could find the difference between my old microphone and the new one :)&lt;/p&gt;</description><pubDate>Wed, 26 Jan 2011 00:36:13 -0800</pubDate></item><item><title>Perfect metronome for android</title><link>http://kile.stravaganza.org/blog/post/perfect-metronome-for-android</link><description>&lt;p&gt;Finally I've managed to finish the application I've working last weeks. It's a simple metronome that I started for two reasons: I wanted to try audio programming in Android and I really needed one for my guitar lessons&lt;/p&gt;
&lt;p&gt;First thing I did, obviously, it was to try to find any suitable metronome on the market, but as I commented in my &lt;a href=&quot;http://kile.stravaganza.org/blog/post/android-audio-api-sucks&quot;&gt;previous post&lt;/a&gt; usually the android audio-apps suffer from some kind of lag. That latency maybe it's not a real problem a game, but for a metronome it makes the application just useless.&lt;/p&gt;
&lt;p&gt;I used some tricks I've used in &lt;a href=&quot;http://en.wikipedia.org/wiki/Demoscene&quot;&gt;demoscene&lt;/a&gt; while coding my &lt;a href=&quot;http://kile.stravaganza.org/project/ksynth&quot;&gt;softsynth&lt;/a&gt; and finally I got it working properly.&lt;/p&gt;
&lt;p&gt;The next step after having the &lt;em&gt;engine&lt;/em&gt; working it was to try to create a comfortable and nice looking interface (&lt;a href=&quot;http://www.ricardocabello.com/&quot;&gt;Thanks&lt;/a&gt; &lt;a href=&quot;http://wonder.stravaganza.org/&quot;&gt;for&lt;/a&gt; &lt;a href=&quot;http://tekno.stravaganza.org/&quot;&gt;the&lt;/a&gt; &lt;a href=&quot;http://viktorsan.zoomblog.com/&quot;&gt;advices&lt;/a&gt;).&lt;/p&gt;
&lt;img src=&quot;images/blog/perfectmetronome.jpg&quot;/&gt;
&lt;p&gt;I just finished with few details such as choosing from different soundbanks, allowing to increase/decrease automatically the BPM, allow to store tracks presets and songs probably the hardest part due to the amount of UI interface needed to manage the songs and tracks and because I was absolutly newbie on &lt;a href=&quot;http://www.sqlite.org/&quot;&gt;sqlite&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.bitkore.com/perfectmetronome/&quot;&gt;Here&lt;/a&gt; you can see a more detailed info about this application called &lt;b&gt;Perfect Metronome&lt;/b&gt; I know... it could sounds very arrogant but I was just so excited when I got it working :)&lt;/p&gt;
&lt;p&gt;Anyway here are the codes for the lite version (1 minute playing limitation) and the payed one (0.80&amp;euro;):&lt;p&gt;
&lt;p&gt;
&lt;a href=&quot;market://details?id=com.bitkore.perfectmetronome&quot;&gt;&lt;img src=&quot;http://chart.apis.google.com/chart?cht=qr&amp;chs=100x100&amp;chld=|0&amp;chl=market://details?id=com.bitkore.perfectmetronome&quot;/&gt;&lt;/a&gt;
&lt;a href=&quot;market://details?id=com.bitkore.perfectmetronomedemo&quot;&gt;&lt;img src=&quot;http://chart.apis.google.com/chart?cht=qr&amp;chs=100x100&amp;chld=|0&amp;chl=market://details?id=com.bitkore.perfectmetronomedemo&quot;/&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;Following you can see four recordings of three metronomes from Android Market and Perfect Metronome. All the recording were done at 120BPM and without any other process running to see the lag effect I pointed before.&lt;/p&gt;
&lt;img src=&quot;images/blog/metronomes.jpg&quot;/&gt;</description><pubDate>Fri, 05 Nov 2010 00:47:35 -0700</pubDate></item><item><title>Android audio APIs sucks</title><link>http://kile.stravaganza.org/blog/post/android-audio-api-sucks</link><description>&lt;img src=&quot;images/blog/java_sucks.jpg&quot;/&gt;
&lt;p&gt;&lt;a href=&quot;http://kile.stravaganza.org/blog/post/my-new-toy&quot;&gt;This love&lt;/a&gt; couldn't be forever... and I just got pissed when I found out that Android audio API is &lt;a href=&quot;http://mindtherobot.com/blog/555/android-audio-problems-hidden-limitations-and-opensl-es/&quot;&gt;competly crap&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I was playing around with the three available APIs: &lt;strong&gt;AudioTrack, MediaPlayer&lt;/strong&gt; and &lt;strong&gt;SoundPool&lt;/strong&gt;. My idea was to make just a simple music sequencer, with the idea to try to do some little &lt;a href=&quot;http://kile.stravaganza.org/project/ksynth&quot;&gt;softsynth&lt;/a&gt; in the future :)&lt;/p&gt;
&lt;p&gt;So after making the first tests I got an incredible deception because of the lack of timing. I started to create a simple metronome just playing a sound continously in a loop, and I got the same results: lag from time to time.&lt;/p&gt;
&lt;p&gt;I started to search on internet for possible solutions, maybe I was doing something completely wrong. But I didn't found almost anything, so I decided to try to download some high ranked metronome from Android Market to check if they suffer from this kind of problem.&lt;/p&gt;
&lt;p&gt;I got surprised when I found that all of them that I downloaded they got some delay from time to time comparing them with real metronome (Some of them got this lag earlier and It was quite easy to recognize even without comparison with real one, others got it softer and later). I even found one &lt;a href=&quot;http://www.androlib.com/android.application.com-thomasbending-visualmetronome-jADAD.aspx&quot;&gt;visual metronome&lt;/a&gt; with the following description: &lt;em&gt;A simple metronome using flashing lamps.&lt;/em&gt; &lt;strong&gt;It does NOT click, since the effort of clicking seems to make some Android metronomes lose time.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I thought: &lt;em&gt;&quot;Ok... I think it's time to go to NDK and do this things in native code&quot;&lt;/em&gt;. Could be nice if the NDK would support audio :) but it seems they've just focused more in graphics.&lt;/p&gt;
&lt;p&gt;I've read in many places that they'll give NDK support for audio in Android 3.0, but noone of those comments were offical, so just cross the finger and keep praying&lt;/p&gt;
&lt;p&gt;Regarding the current API, I've tried all the combinations I could: &lt;strong&gt;using the three APIs, creating threads for audio at high priority, creating task with handler, generating a lot of messages at fixed step time... but noone of them work enough good&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;It seems that &lt;a href=&quot;http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29&quot;&gt;GC&lt;/a&gt; just appears to say hello from time to time and help with this mess.&lt;/p&gt;
&lt;p&gt;I think that developing this kind of mobiles it looks like developing in computers some years ago where good perfomance, keeping an eye on resources and having enough stability was the main goal.&lt;/p&gt;
&lt;p&gt;Now in desktop computers almost noone care about those things as we have enough resources and speed for everything you almost could program, and I think this philosophy has come also to this devices. It could be much better to have the native API in high perfomance language such as C or C++ for example, and then add an extra layer for those who doesn't want to care about it but prefer more academic language programming :_)&lt;/p&gt;
&lt;p&gt;Anyway, after crying a little bit, I go back to code :D&lt;/p&gt;</description><pubDate>Fri, 08 Oct 2010 21:55:41 -0700</pubDate></item><item><title>Collision detection on Android with fixed timestep</title><link>http://kile.stravaganza.org/blog/post/collision-detection-android-fixed-timestep</link><description>&lt;p&gt;Last days I've spent some time making some tests with collision detection on Android. It could be easy to use the simple approach to test if two circles overlap on each frame using the simplest game loop:&lt;/p&gt;
&lt;pre&gt;
while (playing)
{
	updateGame();
	draw();
}
&lt;/pre&gt;
&lt;p&gt;But I've bought my phone for fun, to enjoy doing &lt;em&gt;hard&lt;/em&gt; things :D or at least trying to make them in the &lt;em&gt;good&lt;/em&gt; way. So I started to read about proper game loop design.&lt;/p&gt;&lt;p&gt;I must say it's quite hard to find nice articles, most of them just present a buggy &lt;em&gt;deltatime&lt;/em&gt; based model, but fortunately I found two very nice articles about it:&lt;/p&gt;
&lt;p&gt;
&lt;ul class=&quot;simple_list&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.koonsolo.com/news/dewitters-gameloop&quot;&gt;deWiTTERS Game Loop&lt;/a&gt; is a very nice introducction to the most popular game loop models including pseudocode to understand better the concept.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.iguanademos.com/Jare/Articles.php?view=FixLoop&quot;&gt;Jare's fixed timestep game loop article&lt;/a&gt; is a great text that I used to implement my current game loop.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;
&lt;p&gt;Regarding the collision detection I also found two articles, quite old but still useful: &lt;a href=&quot;http://www.gamasutra.com/view/feature/3383/simple_intersection_tests_for_games.php&quot;&gt;Pool Hall Lessons: Fast, Accurate Collision Detection Between Circles or Spheres&lt;/a&gt; and &lt;a href=&quot;http://www.gamasutra.com/view/feature/3015/pool_hall_lessons_fast_accurate_.php&quot;&gt;Simple Intersection Tests For Games&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When you try to check on each frame if two objects collide, you could get into error very easy if the objects move at high speed. It happens if the distance they'll move from one frame to another is bigger than the size of then so they just &lt;em&gt;jump/pass through&lt;/em&gt; each other like a ghost :)&lt;/p&gt;&lt;p&gt;To prevent it I check the movement from the last frame to the current one to to see if the objects collide between the frames.&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/mWUfxoNS5RM?fs=1&amp;amp;hl=es_ES&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/mWUfxoNS5RM?fs=1&amp;amp;hl=es_ES&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;480&quot; height=&quot;385&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description><pubDate>Wed, 06 Oct 2010 23:34:35 -0700</pubDate></item><item><title>Hello Android Market</title><link>http://kile.stravaganza.org/blog/post/hello-android-market</link><description>&lt;p&gt;It has been a week since I got my android phone, and I've already manage to create a little application trying to fit together basic functionality on it&lt;/p&gt;
&lt;p&gt;It's just a game where you should touch the last circle that appears on the screen. Quite simple but enough for the beginning :)&lt;/p&gt;&lt;p&gt;It features:&lt;/p&gt;&lt;ul class=&quot;simple_list&quot;&gt;&lt;li&gt;Basic canvas drawing&lt;/li&gt;&lt;li&gt;Sound playing and vibration on success or fail&lt;/li&gt;&lt;li&gt;Save game preferences: username, play sounds, vibration&lt;/li&gt;&lt;li&gt;Download and upload hiscores from an online server&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As I said it's quite enough to start playing with it.&lt;/p&gt;
&lt;p&gt;I hope you'll enjoy it (and also I hope to beat &lt;a href=&quot;http://www.mrdoob.com&quot;&gt;Dubito&lt;/a&gt; score :\)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;market://search?q=pname:org.stravaganza.visualmemory&quot;&gt;Here&lt;/a&gt; you'll go directly to the android market, otherwise you could try to find &lt;strong&gt;Visual memory&lt;/strong&gt; from &lt;a href=&quot;http://www.bitkore.com&quot;&gt;bitkore&lt;/a&gt; &lt;em&gt;(More about that in the future :))&lt;/em&gt;&lt;/p&gt;</description><pubDate>Mon, 27 Sep 2010 20:15:20 -0700</pubDate></item><item><title>Hello Android</title><link>http://kile.stravaganza.org/blog/post/hello-android</link><description>&lt;p&gt;After being reading few chapters from &lt;em&gt;Learn Android in 24 Hours&lt;/em&gt;-kinda books, I couldn't resist so I jumped to Canvas graphics. Just a panel to draw whatever you want and be able to control basic events.&lt;/p&gt;
&lt;p&gt;Today in the job a friend of mine showed me a simple &lt;a href=&quot;http://img1.xooimage.com/files/c/b/6/mind-dd9ff6.swf&quot;&gt;visual game&lt;/a&gt; so I decided that this could be a good &lt;em&gt;hello world&lt;/em&gt; application.&lt;/p&gt;
&lt;p&gt;Of course is still just a draft but I'm quite happy with the programming experience while coding it and reading about the SDK&lt;/p&gt;
&lt;p&gt;More tests coming soon :)&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;images/blog/hello_android.jpg&quot;/&gt;&lt;/p&gt;</description><pubDate>Wed, 22 Sep 2010 02:32:37 -0700</pubDate></item><item><title>My new toy</title><link>http://kile.stravaganza.org/blog/post/my-new-toy</link><description>&lt;p&gt;Last days I decided to get a new toy :) (I really deserved it). The toy is the amazing &lt;a href=&quot;http://galaxys.samsungmobile.com/&quot;&gt;Samsung Galaxy S&lt;/a&gt; with the, more amazing even, Android OS.
&lt;/p&gt;
&lt;p&gt;I should confess I'm quite impress with the usability of this device. Just plug in your computer and copy your files, &lt;strong&gt;pdf, docx, pptx, mp3, avi (divx)&lt;/strong&gt;. You dont need any disgusting software (itunes) or any converter for those file formats, just really plug and play.&lt;/p&gt;
&lt;p&gt;And speaking about the phone itself, it's quite beautiful, lightweight and the screen is very big and with bright colours (AMOLED 4&quot;). It has also quite good perfomance as you can see on &lt;a href=&quot;http://www.youtube.com/watch?v=DLUQP7CWyeQ&quot;&gt;this video compared with HTC Desire and Nexus One&lt;/a&gt;. Using this phone I've change my feelings while using other Android phones from: &lt;em&gt;&quot;Yeah... it's good, it's almost similar than iphone&quot;&lt;/em&gt; to: &lt;em&gt;&quot;Omg, iphone is crap&quot;&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
Anway the most interesting part, and the main reason why I bought it, is to code something for it, so I've just found few books and I'll try to make something funny with it!!.
&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;images/blog/samsung_galaxy_s_android.jpg&quot;/&gt;&lt;/p&gt;</description><pubDate>Mon, 20 Sep 2010 23:56:35 -0700</pubDate></item><item><title>Javascript spikeball</title><link>http://kile.stravaganza.org/blog/post/javascript-3d-spikeball</link><description>&lt;p&gt;Few days ago I was speaking with &lt;a href=&quot;http://mrdoob.com/&quot;&gt;mrdoob&lt;/a&gt; about 3d engines and he showed me one of the projects he's working on: &lt;a href=&quot;http://github.com/mrdoob/three.js&quot;&gt;three.js&lt;/a&gt; it's a javascript framework to be able to use the browser canvas to paint 3D stuff :)&lt;/p&gt;
&lt;p&gt;Its sounded funny: 3D... optimization... it's looks &quot;just&quot; like other demoscene plataform.&lt;/p&gt;
&lt;p&gt;So I'm trying to help to improve it and while getting use of the js syntax and so on, here you have a little test I've made (just click on it):&lt;/p&gt;
&lt;a href=&quot;http://kile.stravaganza.org/lab/js/spikeball&quot;&gt;&lt;img src=&quot;images/blog/spikeball.jpg&quot;/&gt;&lt;/a&gt;
&lt;p&gt;Btw, the effect is based on the code of one of our &lt;a href=&quot;http://www.stravaganza.org&quot;&gt;Stravaganza&lt;/a&gt; productions: &lt;a href=&quot;http://www.pouet.net/prod.php?which=7086&quot;&gt;This way&lt;/a&gt; (64kb version also available &lt;a href=&quot;http://www.pouet.net/prod.php?which=16676&quot;&gt;here&lt;/a&gt;)
</description><pubDate>Sun, 16 May 2010 17:19:11 -0700</pubDate></item><item><title>SOMVis first release</title><link>http://kile.stravaganza.org/blog/post/somvis_released</link><description>&lt;p&gt;I've just uploaded a little program for SOM visualization of data sets. You can check it &lt;a href=&quot;project/somvis&quot;&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;project/somvis&quot;&gt;&lt;img src=&quot;images/blog/somvis_gui.jpg&quot;/&gt;&lt;/a&gt;
</description><pubDate>Sun, 20 Dec 2009 04:24:29 -0800</pubDate></item><item><title>GLSL code stringify</title><link>http://kile.stravaganza.org/blog/post/glsl_code_stringify</link><description>&lt;p&gt;I just started few weeks ago with GLSL and I was trying to find the best way to include shader code into my intro.&lt;/p&gt;
&lt;p&gt;I found out many ways, the two following ways were easy to use just having a little text converter, but hard to manage changes because you always mistake while entering the separators:
&lt;pre&gt;
GLchar* vs=&quot;void main(void)&quot;
&quot;{&quot;
&quot;gl_TexCoord[0] = gl_MultiTexCoord0;&quot;
&quot;gl_Position = ftransform();&quot;
&quot;}&quot;;
&lt;/pre&gt;
This one is even harder to read:
&lt;pre&gt;
GLchar *vs_test =&quot;void main()\r\
{\r\
gl_Position = ftransform();\r\
}&quot;;
&lt;/pre&gt;
&lt;/p&gt;
&lt;p&gt;
But finally, I found a much simpler and good looking way to &lt;em&gt;stringify&lt;/em&gt; the shader:
&lt;/p&gt;
&lt;pre&gt;
#define STRINGIFY(A)  #A

GLchar* vs_blur=STRINGIFY(
void main()
{
	gl_TexCoord[0] = gl_MultiTexCoord0;
	gl_Position = ftransform();
});
&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;http://gcc.gnu.org/onlinedocs/cpp/Stringification.html&quot;&gt;More info&lt;/a&gt;&lt;/p&gt;</description><pubDate>Wed, 05 Aug 2009 20:29:41 -0700</pubDate></item></channel></rss>