<?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>Felipe Barriga Richards &#187; Otros</title>
	<atom:link href="http://blog.felipebarriga.cl/category/otros/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.felipebarriga.cl</link>
	<description>Blog personal de Felipe Barriga Richards</description>
	<lastBuildDate>Sat, 17 Jul 2010 23:52:35 +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>Listing and deleting files in a terminal (bash)</title>
		<link>http://blog.felipebarriga.cl/otros/listing-and-deleting-files-in-a-terminal-bash/</link>
		<comments>http://blog.felipebarriga.cl/otros/listing-and-deleting-files-in-a-terminal-bash/#comments</comments>
		<pubDate>Wed, 05 May 2010 19:03:37 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=313</guid>
		<description><![CDATA[There are infinite ways of doing the following commands but here you can find some examples. They can be very useful when you need to manage a lot of files in different directories. Using &#8216;find&#8217; Delete empty files using find: felipe@funstation:$ find dir/ -type f -empty -print0 &#124; xargs rm -f Or create an script [...]]]></description>
			<content:encoded><![CDATA[<p>There are infinite ways of doing the following commands but here you can find some examples. They can be very useful when you need to manage a lot of files in different directories.<br />
<u><br />
<h3><strong>Using &#8216;find&#8217;</strong></h3>
<p></u></p>
<p>Delete empty files using find:</p>

<div class="wp-terminal">felipe@funstation:$ find dir/ -type f -empty -print0 | xargs rm -f<br/></div>

<p><span id="more-313"></span><br />
Or create an script (to watch it before deleting those files):</p>

<div class="wp-terminal">felipe@funstation:$ find dir/ -type f -empty -print0 | xargs -0 echo rm -f > delete_script.sh<br/></div>

<p><u><br />
<h3><strong>Using &#8216;du&#8217;</strong></h3>
<p></u></p>
<p>List with size all *.txt files on a tree dir:</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt<br/></div>

<p><br/></p>
<p>Also that doesn&#8217;t match an specific size (256K):</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K"<br/></div>

<p><br/></p>
<p>Also add another possible value (256K or 512K):</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K" | grep -v "512K"<br/></div>

<p>or:</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K\|512K"<br/></div>

<p><br/></p>
<p>Count how many they are:</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K\|512K" | wc -l<br/></div>

<p><br/></p>
<p>Get only the filenames:</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K\|512K" | cut -f 2<br/></div>

<p><br/></p>
<p>All in one line (remove trailing newline character):</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K\|512K" | cut -f 2 | tr "\n" " "<br/></div>

<p><br/></p>
<p>Delete Them:</p>

<div class="wp-terminal">felipe@funstation:$ du -ha dir/ | grep \.txt | grep -v "256K\|512K" | cut -f 2 | tr "\n" " " | xargs rm -f<br/></div>

<p><br/></p>
<p><strong>Notes:</strong> You can get errors with grep because it won&#8217;t distinct if the string is in the size or in the filename<br />
<br/></p>
<p><strong>Related in spanish:</strong> <a href="http://systemadmin.es/2009/04/uso-de-xargs-herramientas-unix-ii">http://systemadmin.es/2009/04/uso-de-xargs-herramientas-unix-ii</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/listing-and-deleting-files-in-a-terminal-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert big PDF to huge image (maps)</title>
		<link>http://blog.felipebarriga.cl/otros/convert-big-pdf-to-huge-image-map/</link>
		<comments>http://blog.felipebarriga.cl/otros/convert-big-pdf-to-huge-image-map/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 01:17:48 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[ImageMagick]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=305</guid>
		<description><![CDATA[To convert PDF to big images like maps you can try with Gimp but it eat too much memory and is a bit slow. The other option is to use ImageMagick: felipe@funstation:$ convert file.pdf file.jpg If the output image is to small you can try to change the pixel density (dpi) which is 72dpi by [...]]]></description>
			<content:encoded><![CDATA[<p>To convert <a href="http://en.wikipedia.org/wiki/PDF">PDF</a> to big images like maps you can try with <a href="http://www.gimp.org/">Gimp</a> but it eat too much memory and is a bit slow.<br />
The other option is to use <a href="http://www.imagemagick.org/">ImageMagick</a>:</p>

<div class="wp-terminal">felipe@funstation:$ convert file.pdf file.jpg<br/></div>

<p>If the output image is to small you can try to change the pixel density (dpi) which is 72dpi by default to a bigger one.<br />
Here is an example using 500dpi, 8 bits of color (256), inverting the colors (negate) and saving it in <a href="http://en.wikipedia.org/wiki/Portable_Network_Graphics">PNG</a> format:</p>

<div class="wp-terminal">felipe@funstation:$ convert -density 500 -negate -depth 8 base_actualizado_diciembre_2009.pdf base_actualizado_diciembre_2009-500-invert-8bits.png<br/></div>

<p>The sample file is here: <a href="http://www.osornochile.cl/webimo/documentos/base_actualizado_diciembre_2009.pdf">http://www.osornochile.cl/webimo/documentos/base_actualizado_diciembre_2009.pdf</a><br />
The PDF size is 7.5M and the output PNG size is 59M.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/convert-big-pdf-to-huge-image-map/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPL Lively Client Project (OLD POST)</title>
		<link>http://blog.felipebarriga.cl/otros/gpl-lively-client-project-old-post/</link>
		<comments>http://blog.felipebarriga.cl/otros/gpl-lively-client-project-old-post/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 22:20:10 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[Lively]]></category>
		<category><![CDATA[reverse engineering]]></category>
		<category><![CDATA[secur32.dll]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=78</guid>
		<description><![CDATA[Introduction The objective of this project is to create an GPL client to Lively.com (Dead project) As the protocol is not available, the work is based on different techniques like reverse engineering, sniffers and common sense. Protocol After running a protocol analyzer (wireshark), I found that the Lively client uses XMPP (Jabber) protocol for authentication [...]]]></description>
			<content:encoded><![CDATA[<h1>Introduction</h1>
<p>The objective of this project is to create an GPL client to Lively.com (<strong>Dead project</strong>)<br />
<span id="more-78"></span><br />
As the protocol is not available, the work is based on different techniques like reverse engineering, sniffers and common sense.</p>
<h1>Protocol</h1>
<p>After running a protocol analyzer (wireshark), I found that the Lively client uses XMPP (Jabber) protocol for authentication and messaging.</p>
<p>After checking the files on Google/Lively/Flex is obviuos that some of the code was made using Adobe Flex technology. The good new is that Sothink SWF Decompiler is able to dissamble the SWF file like Login.swf, so I expect to be able to analyze how to login to the server.</p>
<p>Using API Monitor I was able to determine that the library used to encrypt the XMPP messages is secur32.dll, so I’ve made a dll proxy to be able to read the data before to get encrypted and when it comes back, after been decrypted.</p>
<p>Also using HxD I was able to read the memory of the application that seems to be made with Visual C++ for 3D (DirectX) and Adobe Flash for windows and forms, I could check the strings before be encrypted and send to the server. The messages are in some kind of XML encrypted inside a XMPP message.</p>
<h1>Login.SWF Decompiled</h1>
<p>After decompiling and analyzing the code of <strong>\Google\Lively\flex\Login.SWF</strong> I’ve found:<br />
file: <strong>\LoginController.as</strong>:</p>
<pre>public function doLogin() : void
{
	username = login.username.text;
	if (useStoredPassword)
	{
	}// end if
	Antenna.instance.sendCommand("_l", login.remember.selected,
		!passwordChanged, login.username.text, login.password.text);
	return;
}// end function</pre>
<p>file: <strong>\Action\com\google\g3dweb\common\Antenna.as</strong>:</p>
<pre>public function sendCommand(... args) : Object
{
	if (!debugMode)
	{
		return ExternalInterface.call.apply(null, args);
	}// end if
	log("ANTENNA: sendCommand(" + args.join(", ") + ")");
	return {};
}// end function</pre>
<p>So in this way the Visual C++ client interact with the SWF files.</p>
<h1>Secur32.dll Proxy</h1>
<p>To been able to read the data that is send and received, I’ve done a dll proxy. More information about how to do it, can be found here:<br />
<a href="http://www.codeproject.com/KB/DLL/CreateYourProxyDLLs.aspx">http://www.codeproject.com/KB/DLL/CreateYourProxyDLLs.aspx</a></p>
<p>The source code of the dll proxy is here: <a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/11/secur32.zip">secur32.zip</a> and the compiled library is here: <a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/11/secur32.dll">secur32.dll</a></p>
<p>To use it, you need to create a directory in c:\logs and copy the proxy secur32.dll to the Lively directory.<br />
After doing that, rename it to secur31.dll and copy the original secur32.dll (system32) to the Lively directory.<br />
Rename the original secur32.dll in the Lively directory to secur32_.dll<br />
After that, you need to edit the client.exe and replace the string: “secur32.dll” to “secur31.dll” (using an hex editor).<br />
Now you’re done. So execute the client.exe and watch the log files in c:\logs\</p>
<p>Here you can see an example of how looks the dump:</p>
<pre>= Init =
[EncryptMessage] 0 START
cBuffers: 4
[EncryptMessage] 0 buffer[1] size: 130
[EncryptMessage] 0 buffer[1] data:
&lt;stream:stream to="gmail.com" xml:lang="en" version="1.0"
xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"&gt;

[EncryptMessage] 0 END
[DecryptMessage] 0 START
cBuffers: 4
[DecryptMessage] 0 buffer[1] size: 176
[DecryptMessage] 0 buffer[1] data:
&lt;?xml version="1.0" encoding="UTF-8"?&gt;&amp;lt
;stream:stream from="gmail.com" id="2352CC46DE11B711"
version="1.0"xmlns:stream="http://etherx.jabber.org/streams"
 xmlns="jabber:client"&gt;
[DecryptMessage] 0 END
[DecryptMessage] 0 START
cBuffers: 4
[DecryptMessage] 0 buffer[1] size: 166
[DecryptMessage] 0 buffer[1] data:
&lt;stream:features&gt;&lt;mechanisms
xmlns="urn:ietf:params:xml:ns:xmpp-sasl"&gt;&lt;mechanism&gt;PLAIN&lt;/mechanism&gt;
&lt;mechanism&gt;X-GOOGLE-TOKEN&lt;/mechanism&gt;&lt;/mechanisms&gt;
&lt;/stream:features&gt;
[DecryptMessage] 0 END
[EncryptMessage] 0 START
cBuffers: 4
[EncryptMessage] 0 buffer[1] size: 385
[EncryptMessage] 0 buffer[1] data:
&lt;auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
mechanism="X-GOOGLE-TOKEN"&gt;XXXXXXXXXXXXXXXXXXXXXXX&lt;/auth&gt;
[EncryptMessage] 0 END
[DecryptMessage] 0 START
cBuffers: 4
[DecryptMessage] 0 buffer[1] size: 51
[DecryptMessage] 0 buffer[1] data:
&lt;success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/&gt;
[DecryptMessage] 0 END
[EncryptMessage] 0 START
cBuffers: 4
[EncryptMessage] 0 buffer[1] size: 130
[EncryptMessage] 0 buffer[1] data:
&lt;stream:stream to="gmail.com" xml:lang="en" version="1.0" xmlns:stream="
http://etherx.jabber.org/streams" xmlns="jabber:client"&gt;

[EncryptMessage] 0 END
[DecryptMessage] 0 START
cBuffers: 4
[DecryptMessage] 0 buffer[1] size: 176
[DecryptMessage] 0 buffer[1] data:
&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;stream:stream
from="gmail.com" id="92A4B029617BC47C" version="
1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"&gt;
[DecryptMessage] 0 END
[DecryptMessage] 0 START
cBuffers: 4
[DecryptMessage] 0 buffer[1] size: 137
[DecryptMessage] 0 buffer[1] data:
&lt;stream:features&gt;&lt;bind xmlns="
urn:ietf:params:xml:ns:xmpp-bind"/&gt;&lt;session xmlns=quot
urn:ietf:params:xml:ns:xmpp-session"/&gt;&lt;/stream:features&gt;
[DecryptMessage] 0 END
[EncryptMessage] 0 START
cBuffers: 4
[EncryptMessage] 0 buffer[1] size: 115
[EncryptMessage] 0 buffer[1] data:
&lt;iq type="set" id="0"&gt;&lt;bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"&gt;&lt;resource&gt;
libjingleplus&lt;/resource&gt;&lt;/bind&gt;&lt;/iq&gt;
[EncryptMessage] 0 END
[DecryptMessage] 0 START
cBuffers: 4
[DecryptMessage] 0 buffer[1] size: 135
[DecryptMessage] 0 buffer[1] data:
&lt;iq id="0" type="result"&gt;&lt;bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"&gt;&lt;jid&gt;
spamfelipe2@gmail.com/libjinglep59B75216&lt;/jid&gt;&lt;/bind&gt;&lt;/iq&gt;
[DecryptMessage] 0 END</pre>
<p>* I’ve replaced my Google Token for security reason. The token is a base64 string that contains my email (username) and a big string (I think that is the token).</p>
<p>The full log dump can be found here: <a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/11/sniff_secur32_a12207.txt">sniff_secur32_A12207.txt</a></p>
<h1>HxD Dump of Lively Client</h1>
<p>The complete file is here: Lively Memory Dump. I don’t know if the strings are correct, maybe they can be a little corrupt.</p>
<p>I have indented the file so is easier to read it, an extract of the file look like this:<br />
Whose room is this?</p>
<pre>&lt;message to="spamfelipe2@gmail.com/libjinglep8F9CEED3"
 type="groupchat" id="73" from="lively 108@3dconf.google.com/-5578858927619228622_2541031"&gt;
	&lt;body&gt;Whose room is this?&lt;/body&gt;
&lt;/message&gt;

&lt;presence to="spamfelipe2@gmail.com/libjinglep568823DE"
id="369" from="lively-108@3dconf.google.com/2912906431397233772_24952671"&gt;
	&lt;show&gt;away&lt;/show&gt;
	&lt;status/&gt;
	&lt;priority&gt;0&lt;/priority&gt;
	&lt;x stamp="20080711T23:40:39" xmlns="jabber:x:delay"/&gt;
	&lt;nick:nick xmlns:nick="http://jabber.org/protocol/nick"&gt;
		lucas3088
	&lt;/nick:nick&gt;
	&lt;plugin xmlns="google:plugin"&gt;
		&lt;capability&gt;
			3dweb
		&lt;/capability&gt;
		&lt;data&gt;
			CxXj3mXEHWy7qEMlwmSCwgwtAZGsPTABSt0BCJelqfr54P+XBBolCMH+w9
WF09OpNBCVn8HzwfON8H8Yl6Wp+vng/5cEINC9k/jkEBonCIC8j6fDzLPXjwEQ
vZ/26/KaiZmgARiXpan6+eD/lwQg0L2T+OQQGioImv+w89Sd6
K/lARDb3fWBzJif2rcBGJelqfr54P+XBCDsiIib9Z6utigaKQitwOyX8r+5p+cBENn0p4
jNi4XxbhiXpan6+eD/lwQg7IiIm/WerrYoGioIy92Nyqf5hcXBARD/s++qqLbP2LsBGJel
qfr54P+XBCDsiIib9Z6utig=
		&lt;/data&gt;
	&lt;/plugin&gt;
	&lt;x xmlns="vcard-temp:x:update"&gt;
		&lt;photo/&gt;
	&lt;/x&gt;
	&lt;user:x xmlns:user="http://jabber.org/protocol/muc#user"&gt;
		&lt;user:item affiliation="none" role="participant"/&gt;
	&lt;/user:x&gt;
&lt;/presence&gt;

&lt;message type="groupchat" from="lively-108@3dconf.google.com/2912906431397233772_24952671"
 to="spamfelipe2@gmail.com/libjinglep568823DE"&gt;
	&lt;plugin xmlns="google:plugin"&gt;
		&lt;capability&gt;
			3dweb
		&lt;/capability&gt;
		&lt;data&gt;
			CAmLApAC7IiIm/WerrYomAIBjAI=
		&lt;/data&gt;
	&lt;/plugin&gt;
&lt;/message&gt;</pre>
<h1>File Format</h1>
<p>After comparing the data on the memory of Lively and the data retrieved using the dll proxy, they match. So the format is basically using XMPP protocol with some extension.</p>
<p>The binary data is send inside tags and following the XMPP standard, they are coded in Base64.</p>
<p>I think that the data containing the coordinates of the user is sended in a binary format, in the tag. As this method is not efficient, the big files are downloaded using an external url. The data is compressed with gzip and samples can be found in the Temporary Internet Files. Those files are compressed with gzip:</p>

<div class="wp-terminal">user@computer:$ file gp\[8\]<br/>gp[8]: gzip compressed data, max compression<br/></div>

<p>It also appear that some of the 3D files are in Gamebryo format:</p>

<div class="wp-terminal">user@computer:$ gzip -d &lt; gp\[8\]  &gt; gp_8.dump<br/>less gp_8.dump<br/></div>

<p>And the file contains this string: <strong>Gamebryo File Format, Version 20.2.0.8</strong></p>
<p>Others interesting strings:</p>
<pre>NIF Creation Information &gt;&gt; P:/Google/3DWeb/Project/Assets/01_normals_logan/Export/NIF
 &amp; Texture Sources/geo/01_normals_logan_export-07.09.27-v01.mb &gt;&gt;
Platform = Generic &gt;&gt; Gamebryo Version:2.2.2.0
Exporter Plugin Version:7.3
&gt;&gt; NiMultiShader Version:7.0
&gt;&gt; Maya Unlimited 7.0

eyebrows.NIF
eyebrows_NiMultiShader
headShape:1
skin.NIF
skin_NiMultiShader
eyer
eyerShape
right_eye.NIF
right_eye_NiMultiShader

NIF Creation Information &gt;&gt; P:/Google/3DWeb/Project/Assets/01_normals_logan/Export/NIF
&amp; Texture Sources/geo/01_normals_logan_export-07.10.17-v02.mb &gt;&gt;
 Platform = Generic &gt;&gt; Gamebryo Version:2.2.2.0
Exporter Plugin Version:7.3
&gt;&gt; NiMultiShader Version:7.0
&gt;&gt; Maya Unlimited 7.0</pre>
<p><a href="http://ns.adobe.com/xap/1.0/">http://ns.adobe.com/xap/1.0/</a></p>
<p>So to me this seems to be a container file, with a great mix of file formats. Here are two files if you want to look at: <a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/11/1.zip">1.zip</a> <a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/11/2.zip">2.zip</a></p>
<p>I got the files from (as the windows cache says):</p>
<ul>
<li><a href="http://clients3.google.com/lively/s/gp?id=6330964325628602226&amp;obj_ed=0">http://clients3.google.com/lively/s/gp?id=6330964325628602226&amp;obj_ed=0</a></li>
<li><a href="http://clients3.google.com/lively/s/gp?id=7778763701070530893&amp;obj_ed=0">http://clients3.google.com/lively/s/gp?id=7778763701070530893&amp;obj_ed=0</a></li>
</ul>
<p>* You need to be logged in and send an special header with an AUTH cookie to be able to get the files</p>
<p>The problem is that Gamebryo doesn’t have a demonstration/trial kit and the format seems to be proprietary. There is a project to open Gamebryo files (NifTools) but it doesn’t work for me. Anyone want to decode it ?</p>
<h1>Useful Links</h1>
<ul>
<li><a href="http://www.mh-nexus.de/">HxD Hexeditor</a></li>
<li><a href="http://www.sothink.com/">Sothink SWF Decompiler</a></li>
<li><a href="http://www.wireshark.org/">Wireshark</a></li>
<li><a href="http://www.lively.com/">Lively Client</a></li>
<li><a href="http://www.apimonitor.com/">API Monitor</a></li>
<li><a href="http://www.xmpp.org/">XMPP Protocol</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/gpl-lively-client-project-old-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hp iPAQ rx1950 spanish with WM6.1 (Windows Mobile 6.1)</title>
		<link>http://blog.felipebarriga.cl/otros/hp-ipaq-rx1950-spanish-with-wm6-1-windows-mobile-6-1/</link>
		<comments>http://blog.felipebarriga.cl/otros/hp-ipaq-rx1950-spanish-with-wm6-1-windows-mobile-6-1/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 02:01:36 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[rx1950]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=73</guid>
		<description><![CDATA[After getting a file to update the hp iPAQ rx1950 from WM5.0 (Windows Mobile 5.0) to WM6.1 I figure out that this update was only possible to be done in an english iPAQ. The file used to do the update is: Flasher_Hp_Ipaq_rx1950_ENG_WM6.1.rar (a russian hacked windows version translated to english). The file that you need [...]]]></description>
			<content:encoded><![CDATA[<p>After getting a file to update the <strong>hp iPAQ rx1950</strong> from <strong>WM5.0</strong> (Windows Mobile 5.0) to <strong>WM6.1</strong> I figure out that this update was only possible to be done in an english iPAQ.<br />
The file used to do the update is: <a href="http://forum.xda-developers.com/archive/index.php/t-510764.html">Flasher_Hp_Ipaq_rx1950_ENG_WM6.1.rar</a> (a russian hacked windows version translated to english).<br />
The file that you need to modify to allow you to update an spanish iPAQ with a ROM for another language is <strong>hpRUU.exe</strong>. You only need to do a little change using an HEX editor. In the following picture you can see the little change that make the difference:</p>
<div id="attachment_74" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/09/rx1950_wm6_little_change.png" rel="lightbox[73]"><img src="http://blog.felipebarriga.cl/wp-content/uploads/2009/09/rx1950_wm6_little_change-300x107.png" alt="Little Hack to update iPAQ" title="Little Hack to update iPAQ" width="300" height="107" class="size-medium wp-image-74" /></a><p class="wp-caption-text">Little Hack to update iPAQ</p></div>
<p>You can use any Hex Editor, my choice was KHexEdit. Also I do it from Linux but running a Virtual Machine (<a href="http://www.virtualbox.org/">VirtualBox</a>) with Windows XP.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/hp-ipaq-rx1950-spanish-with-wm6-1-windows-mobile-6-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NASA World Wind JAVA and Radeon</title>
		<link>http://blog.felipebarriga.cl/otros/nasa-world-wind-java-and-radeon/</link>
		<comments>http://blog.felipebarriga.cl/otros/nasa-world-wind-java-and-radeon/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 18:15:44 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Radeon]]></category>
		<category><![CDATA[World Wind]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=67</guid>
		<description><![CDATA[Para poder ejecutar el NASA World Wind version java (y sus demos) en Linux utilizando el driver open source para las tarjetas radeon necesitas configurar el DRI para que se muestren las texturas. Hardware Utilizado: Tarjeta: ATI Mobility Radeon X1400 Chipset: R500 Configuracion de xorg: (**) RADEON(0): Option "EnablePageFlip" "1" (**) RADEON(0): Option "ColorTiling" "1" [...]]]></description>
			<content:encoded><![CDATA[<p>Para poder ejecutar el <a href="http://worldwind.arc.nasa.gov/java/index.html">NASA World Wind</a> version java (<a href="http://worldwind.arc.nasa.gov/java/demos/">y sus demos</a>) en Linux utilizando el <a href="http://dri.freedesktop.org/wiki/ATIRadeon#head-c75f086e8b18a43299b0da1b07cf8322679e8633">driver open source para las tarjetas radeon</a> necesitas configurar el DRI para que se muestren las texturas.<br />
<span id="more-67"></span><br />
<strong>Hardware Utilizado:</strong><br />
<code><br />
Tarjeta: ATI Mobility Radeon X1400<br />
Chipset: R500<br />
</code></p>
<p><strong>Configuracion de xorg:</strong><br />
<code><br />
(**) RADEON(0): Option "EnablePageFlip" "1"<br />
(**) RADEON(0): Option "ColorTiling" "1"<br />
(**) RADEON(0): Option "AccelMethod" "XAA"<br />
(**) RADEON(0): Option "TVDACLoadDetect" "TRUE"<br />
(**) RADEON(0): Option "TVStandard" "ntsc"<br />
(**) RADEON(0): Option "ATOMTVOut" "TRUE"<br />
</code></p>
<p><strong>Version de Java:</strong> java version &#8220;1.6.0_15&#8243;</p>
<p>Necesitas ejecutar la herramienta Direct Rendering Preferences:</p>

<div class="wp-terminal">felipe@funstation:$ driconf<br/></div>

<p>ir a <em>Image Quality</em> y setear las siguientes opciones:<br />
<strong>Enable S3TC texture compression even if software  support is not available</strong> = YES<br />
<strong>Disable S3TC compression</strong> = NO</p>
<p>Con eso deberias de estar listo para poder ocupar el World Wind Java</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/nasa-world-wind-java-and-radeon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acortando el Path en el prompt del terminal (bash)</title>
		<link>http://blog.felipebarriga.cl/otros/acortando-el-path-en-el-prompt-del-terminal-bash/</link>
		<comments>http://blog.felipebarriga.cl/otros/acortando-el-path-en-el-prompt-del-terminal-bash/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 23:42:44 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=61</guid>
		<description><![CDATA[A mas de alguno le habra pasado que cuando estan en un directorio con muchos niveles de profundidad del tipo: /home/user/mis_archivos/personal/documentos/documentos-importantes/ Les ocupa la mitad de la linea del terminal. Para solucionar eso solo necesitan cambiar la variable PS1. La variable original que viene con mi distro (Gentoo) es: user@computer:$ PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]' Y decidi [...]]]></description>
			<content:encoded><![CDATA[<p>A mas de alguno le habra pasado que cuando estan en un directorio con muchos niveles de profundidad del tipo:<br />
<strong><em>/home/user/mis_archivos/personal/documentos/documentos-importantes/</em></strong><br />
Les ocupa la mitad de la linea del terminal. Para solucionar eso solo necesitan cambiar la variable PS1.<br />
<span id="more-61"></span><br />
La variable original que viene con mi distro (Gentoo) es:</p>

<div class="wp-terminal">user@computer:$ PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]'<br/></div>

<p>Y decidi reemplazarla por esta que restringe el tamaño del path a mostrar:</p>

<div class="wp-terminal">user@computer:$ PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] ${PWD/????????????????????????????*/...${PWD:${#PWD}-30}} \$\[\033[00m\]'<br/></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/acortando-el-path-en-el-prompt-del-terminal-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Restaurar Base de Datos desde CSV (MySQL)</title>
		<link>http://blog.felipebarriga.cl/otros/restaurar-base-de-datos-desde-csv-mysql/</link>
		<comments>http://blog.felipebarriga.cl/otros/restaurar-base-de-datos-desde-csv-mysql/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 10:26:44 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=26</guid>
		<description><![CDATA[Despues de obtener las Bases de Datos filtradas a Internet, decidi cargarlas a una Base de Datos MySQL (tiene soporte para fulltext index). Despues de crear las tablas con los scripts dados, se debe importar los CSV de la siguiente forma: LOAD DATA LOCAL INFILE 'mineduc.csv' INTO TABLE mineduc FIELDS TERMINATED BY ',' ENCLOSED BY [...]]]></description>
			<content:encoded><![CDATA[<p>Despues de obtener las Bases de Datos filtradas a Internet, decidi cargarlas a una Base de Datos MySQL (tiene soporte para fulltext index).<br />
Despues de crear las tablas con los scripts dados, se debe importar los CSV de la siguiente forma:</p>
<p><code><br />
LOAD DATA LOCAL INFILE 'mineduc.csv' INTO TABLE mineduc FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (rut, nombre, establecimiento, jornada, tipo, estado);<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/restaurar-base-de-datos-desde-csv-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Archivos de Utilidad</title>
		<link>http://blog.felipebarriga.cl/otros/archivos-de-utilidad/</link>
		<comments>http://blog.felipebarriga.cl/otros/archivos-de-utilidad/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 09:40:06 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=6</guid>
		<description><![CDATA[Quisas necesites tener una lista de nombres, apellidos o ciudades. Si es asi aqui puedes bajarlos (Nombres y Apellidos ordenados por frecuencia): nombres.txt apellidos.txt ciudades.txt]]></description>
			<content:encoded><![CDATA[<p>Quisas necesites tener una lista de nombres, apellidos o ciudades.<br />
Si es asi aqui puedes bajarlos (Nombres y Apellidos ordenados por frecuencia):</p>
<ul>
<li><a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/08/nombres.txt">nombres.txt</a></li>
<li><a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/08/apellidos.txt">apellidos.txt</a></li>
<li><a href="http://blog.felipebarriga.cl/wp-content/uploads/2009/08/ciudades.txt">ciudades.txt</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/archivos-de-utilidad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello World!</title>
		<link>http://blog.felipebarriga.cl/otros/hello-world-2/</link>
		<comments>http://blog.felipebarriga.cl/otros/hello-world-2/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 09:12:25 +0000</pubDate>
		<dc:creator>fbarriga</dc:creator>
				<category><![CDATA[Otros]]></category>

		<guid isPermaLink="false">http://blog.felipebarriga.cl/?p=4</guid>
		<description><![CDATA[Bienvenido a mi blog ! Luego de varios meses sin blog he decidido que ya era hora de volver a aparecer en los resultados de google! Encontraran basicamente lo mismo que antes, una que otra idea o proyecto que tengo en mente.]]></description>
			<content:encoded><![CDATA[<p>Bienvenido a mi blog !</p>
<p>Luego de varios meses sin blog he decidido que ya era hora de volver a aparecer en los resultados de google!</p>
<p>Encontraran basicamente lo mismo que antes, una que otra idea o proyecto que tengo en mente.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.felipebarriga.cl/otros/hello-world-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
