<?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>ejs &#187; Blogroll</title>
	<atom:link href="http://ejs.seniejitrakai.net/category/blogroll/feed/" rel="self" type="application/rss+xml" />
	<link>http://ejs.seniejitrakai.net</link>
	<description>a snaphot of time</description>
	<lastBuildDate>Mon, 09 Jan 2012 22:10:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>OpenOffice.org, x64 and .NET interface</title>
		<link>http://ejs.seniejitrakai.net/2011/01/23/openoffice-org-x64-and-net-interface/</link>
		<comments>http://ejs.seniejitrakai.net/2011/01/23/openoffice-org-x64-and-net-interface/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 17:28:42 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[MatLAB]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[LibreOffice]]></category>
		<category><![CDATA[OpenOffice]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/?p=194</guid>
		<description><![CDATA[Here,&#8217;s the story short: I need to create a series of graph for highly scientific data sets. The data is calculated in MatLAB, but the export of figures in MatLAB is a pain for me. On the other hand OpenOffice.org seems to be the right tool for the job. The latest MatLAB has the function, [...]]]></description>
			<content:encoded><![CDATA[<p>Here,&#8217;s the story short:</p>
<p>I need to create a series of graph for highly scientific data sets. The data is calculated in MatLAB, but the export of figures in MatLAB is a pain for me.</p>
<p>On the other hand OpenOffice.org seems to be the right tool for the job. The latest MatLAB has the function, called &#8216;xlswrite&#8217;. Happy with the fact, hoping it should write the XLS file I fire it up and&#8230;</p>
<p>Ouch. One must have Excell installed, as the data export goes through the ActiveX. If no Excell is found, the data is exported into CSV file, overwriting the file every time. Not the Right Thing.<span id="more-194"></span></p>
<p>The job was done via ordinary &#8216;csvwrite&#8217;, but adding data, importing the file to OpenOffice.org Calc and producing a series of graph.</p>
<p>And the milestone is creating &#8216;odswrite&#8217;, implementing the same functionality as &#8216;xlswrite&#8217; presents. As MatLAB supports .NET and OpenOffice.org can be controlled via .NET-UNO bridge, .NET implementation of the function seems to be the easiest task.</p>
<p>The first problem found is it&#8217;s impossible to load &#8216;cli_cpputype&#8217; NET assembly on x64 systems. I&#8217;m not sure if it is because &#8216;cli_cpputype&#8217; is compiled for .NET 2.0, but the problem is too seriuos.</p>
<p>A <a href="http://ejs.seniejitrakai.net/njufsams/OpenOfficeTestApp.exe">small .NET program</a>, based on<a href="http://www.suite101.com/content/creating-an-openoffice-writer-document-with-c-a123686">Creating an OpenOffice Writer Document with C#</a> and<a href="http://www.suite101.com/content/creating-an-openoffice-calc-document-with-c-a124112"> Creating an OpenOffice Calc Document with C# </a>was created. In the case of success, it writes 2 files to user&#8217;s desktop:  &#8220;OpenOfficeTestFile.odt&#8221; for Writer and &#8220;OpenOfficeTestFile.ods&#8221; for Calc.</p>
<p>Here&#8217;s the source for C#. Sorry fot the mess, it&#8217;s my first .NET and C# programm ever compiled <img src='http://ejs.seniejitrakai.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre>using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

// OOorg assemblies
using unoidl.com.sun.star.lang; 
using unoidl.com.sun.star.uno; 
using unoidl.com.sun.star.bridge; 
using unoidl.com.sun.star.frame;
using unoidl.com.sun.star.text;
using unoidl.com.sun.star.beans;
using unoidl.com.sun.star.sheet;
using unoidl.com.sun.star.container;
using unoidl.com.sun.star.table;

namespace OONETTest
{
 class OpenOfficeTestApp 
 {
 //Define a file name. Change this to an existing path! 
private static string FileName      = @"OpenOfficeTestFile";  

 static void Main(string[] args)
 {
 string fDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
 string fFileName = fDesktop + "\\" + FileName;

//Call the bootstrap method to get a new ComponentContext 
 //object. If OpenOffice isn't already started this will 
 //start it and then return the ComponentContext.  

 unoidl.com.sun.star.uno.XComponentContext localContext =  uno.util.Bootstrap.bootstrap(); 

 //Get a new service manager of the MultiServiceFactory type 
 //we need this to get a desktop object and create new CLI 
 //objects.  

 unoidl.com.sun.star.lang.XMultiServiceFactory multiServiceFactory =  (unoidl.com.sun.star.lang.XMultiServiceFactory) localContext.getServiceManager(); 

 //Create a new Desktop instance using our service manager 
 //Notice: We cast our desktop object to XComponent loader 
 //so that we could load or create new documents.  

 XComponentLoader componentLoader = (XComponentLoader) multiServiceFactory.createInstance("com.sun.star.frame.Desktop" ); 

 //Create a new blank writer document using our component 
 //loader object. 
 XComponent oDoc = componentLoader.loadComponentFromURL( "private:factory/swriter",  //a blank writer document 
 "_blank", 0,       //into a blank frame use no searchflag 
 //use no additional arguments. 
 new unoidl.com.sun.star.beans.PropertyValue[0] 
 ); 

 //Cast our component to a the XText interface 
//and write some simple text into document.  

 ((unoidl.com.sun.star.text.XTextDocument)oDoc).getText().setString("Testing OpenOffice.org .NET interface"); 

 //After we insert our text, we cast our component to XStorable 
 //to save it onto the harddisk  

 ((XStorable)oDoc).storeToURL( //Convert the file path into a OpenOffice path 
 PathConverter(fFileName + ".odt"),
 new unoidl.com.sun.star.beans.PropertyValue[0]);            //no additional arguments  

 // close the Writer
 oDoc.dispose();

 // according to
 //http://www.suite101.com/content/creating-an-openoffice-calc-document-with-c-a124112

 //Create a new blank writer document using our component 
 //loader object. 
 XComponent oCalc = componentLoader.loadComponentFromURL("private:factory/scalc",  //a blank Calc document 
 "_blank", 0,       //into a blank frame use no searchflag 
 //use no additional arguments. 
 new unoidl.com.sun.star.beans.PropertyValue[0]
 );

 // get sheets
 XSpreadsheets oSheets = ((XSpreadsheetDocument)oCalc).getSheets();
 XIndexAccess oSheetsIA = (XIndexAccess) oSheets;
 // access sheet by index
 XSpreadsheet oSheet = (XSpreadsheet) oSheetsIA.getByIndex(0).Value;</pre>
<pre>//write some data:
//Each cell in a Calc sheet is indexed by its column and row, so that text (for example) is written to cell A1 by using:

 XCell oCell = oSheet.getCellByPosition( 0, 0 ); //A1
 ((XText)oCell).setString("Testing OpenOffice.org .NET interface");</pre>
<pre>oCell = oSheet.getCellByPosition( 0, 1 ); //A2
 ((XText)oCell).setString("Cost");

 //And a number can be written to B1 by using:
 oCell = oSheet.getCellByPosition( 1, 1 ); //B2
 oCell.setValue(200);

 //And the "setFormula" methods is, of course, used to enter formulae (in this example into B3):

 oCell = oSheet.getCellByPosition( 1, 2 ); //B3
 oCell.setFormula("=B2 * 1.175");

 //After we insert our text, we cast our component to XStorable 
 //to save it onto the harddisk  

 ((XStorable)oCalc).storeToURL( //Convert the file path into a OpenOffice path 
 PathConverter(fFileName + ".ods"),
 new unoidl.com.sun.star.beans.PropertyValue[0]);            //no additional arguments  

 // close Calc
 oCalc.dispose();

 MessageBox.Show("OpenOffice document '" + fFileName + ".odt' saved, \n" + "OpenOffice document '" + fFileName + ".ods' saved", "OpenOffice .NET Test App");

 } 

 /// 
 /// Convert file path  into OO file format 
 /// 
 ///

 private static string PathConverter( string file) 
 {
 try 
 {
 file = file.Replace(@"\", "/");
 return "file:///"+file; 
 }
 catch (System.Exception ex) 
 {
 throw ex; 
 }
 }
 }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2011/01/23/openoffice-org-x64-and-net-interface/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Running VirtualBox guests from physical drive</title>
		<link>http://ejs.seniejitrakai.net/2010/11/01/running-virtualbox-guests-from-physical-drive/</link>
		<comments>http://ejs.seniejitrakai.net/2010/11/01/running-virtualbox-guests-from-physical-drive/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 22:38:28 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[*NIX]]></category>
		<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[My job]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/?p=175</guid>
		<description><![CDATA[Dual boot is perfect solution in most cases. On the other hand, if you need to peep into the other system&#8217;s files, you need to re-boot. Or use sometimes not so stable filesystem utilities. Running fully virtualized OS, using eg Xen as supervisor, creates additional load an hardware, maybe not too big when running multiple [...]]]></description>
			<content:encoded><![CDATA[<p>Dual boot is perfect solution in most cases.</p>
<p>On the other hand, if you need to peep into the other system&#8217;s files, you need to re-boot. Or use sometimes not so stable filesystem utilities.<br />
Running fully virtualized OS, using eg Xen as supervisor, creates additional load an hardware, maybe not too big when running multiple OS&#8217;es on the pretty new server, but significant, if it is a laptop. And yes, you NEED to keep data in-sync between virtual and real OS.<span id="more-175"></span><br />
VMware users, please don&#8217;t read any more. Yes, you can do it from pre-historic times.</p>
<p>You&#8217;ve been warned!</p>
<p>As for VirtualBox, it is possible to add physical drive or disk partition to your VM setup, although no GUI tools exists to accomplish this.<br />
Every step is documented in VirtualBox User&#8217;s Guide, but really, who read these guides?<br />
So , excerpts from <a href="http://www.virtualbox.org/manual/ch09.html#rawdisk">The Guide, chapter 9</a>:</p>
<p><strong>Step 1:</strong> you need to know the partition layout of the drive.</p>
<p><code>VBoxManage internalcommands listpartitions -rawdisk [physical_drive]</code></p>
<p>Substitute [physical_drive] for <strong>/dev/sd[a-z]</strong> if you live in Linux, <strong>\\.\PhysicalDrive[0..n]</strong> living in windows or <strong>/dev/drive[1..n]</strong> living in OS X.<br />
Note the numbers. Linux usually has partition type 0&#215;83, windows &#8211; 0&#215;07. Not sure about Mac. You need to remember the physical partition you want to use in guest OS.</p>
<p><strong>Step 2:</strong> export it to a file. It&#8217;s as easy as 1-2-3. And no, not the whole partition, but only some information about the layout of partitions will be saved:</p>
<p><code>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda -partitions [partition_number] -register</code></p>
<p><strong>/path/to/file.vmdk</strong> must be absolute path. Substitute <strong>[partition_number]</strong> with the the partition from step 1. Using &#8220;-register&#8221; automagically registers the image in list of registered images of the VirtualBox.</p>
<p>&nbsp;</p>
<p><strong>Step 3:</strong> attach the newly created file to a guest and run it.</p>
<p><strong>Some notes:</strong> it&#8217;s possible to use entire physical disk for VirtualBox:<br />
<code>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk [physical_drive]</code><br />
Although it is possible, you should ever never launch the currently running system in VirtualBox. You&#8217;ve been warned.</p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2010/11/01/running-virtualbox-guests-from-physical-drive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration hell: moving printers in Windows</title>
		<link>http://ejs.seniejitrakai.net/2010/10/20/migration-hell-moving-printers/</link>
		<comments>http://ejs.seniejitrakai.net/2010/10/20/migration-hell-moving-printers/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 00:28:26 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[My job]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/?p=164</guid>
		<description><![CDATA[Our campus, Faculty of Architecture, VGTU is moving to the totally new subnet. As we use DHCP for IP distribution, no real problems except `sed` are going to appear. The pleasing moment is we are getting a fresh IP range. The headache is TCP/IP printers. WPKG has good printer addition/ installation guide in http://wpkg.org/Printer_configuration , [...]]]></description>
			<content:encoded><![CDATA[<p>Our campus, <a href="http://www.ar.vgtu.lt">Faculty of Architecture</a>, <a href="http://www.vgtu.lt">VGTU</a> is moving to the totally new subnet. As we use DHCP for IP distribution, no real problems except `sed` are going to appear.<br />
The pleasing moment is we are getting a fresh IP range.<br />
The headache is TCP/IP printers.</p>
<p>WPKG has good printer addition/ installation guide in http://wpkg.org/Printer_configuration , but it does not cover changing IP port numbers.<br />
As a CEO on all computer infrastructure, I need to find any solution to make the movement smoothly.</p>
<p>I was unable to find a ready-made solution, and in-house tool appeared after several hours in the Net.<br />
I need to apologize for bugs and errors, as it is the first (and hopefully the last) VB script. It uses WMI. Testing box was W7, x64.<br />
Maybe someone will find it useful.</p>
<p>Call the file <strong>chprinterport.vbs</strong><span id="more-164"></span><br />
<code><br />
Set args = WScript.Arguments<br />
if args.Count < 2 then<br />
	Wscript.Echo " "<br />
	Wscript.Echo " Change IP ports for TCP/IP printers on Windows boxes"<br />
	Wscript.Echo " "<br />
	Wscript.Echo "   Usage: <em>cscript chprinterport.vbs old_TCP/IP_port new_TC/IP_port</em>"<br />
	Wscript.Echo " "<br />
	Wscript.Echo "    eg: cscript chprinterport.vbs 192.168.1.2 192.168.2.3 will change"<br />
	Wscript.Echo "      port IP from 192.168.1.2 to 192.168.2.3"<br />
	Wscript.Echo " "<br />
	Wscript.Echo "    Partial match is possible, so:"<br />
	Wscript.Echo "      cscript chprinterport.vbs 192.168 210.23 will change"<br />
	Wscript.Echo "      port IP from 192.168.x.y to 210.23.x.y"<br />
	Wscript.Echo " "<br />
	Wscript.Echo " Inspired by:"<br />
	Wscript.Echo "   http://wpkg.org/Printer_configuration"<br />
	Wscript.Echo "   http://gallery.technet.microsoft.com/ScriptCenter/en-us/5777dc6a-9783-43d7-ac8e-fd3bd739690c"<br />
	Wscript.Echo "   http://www.pcreview.co.uk/forums/showpost.php?s=8a077fc479806d3fc03bf734d57b357f&#038;p=5622799&#038;postcount=6"<br />
	Wscript.Echo " "<br />
	Wscript.Echo "                                                            License - BSD"<br />
	Wscript.Echo " "<br />
	Wscript.Echo "                           (c) 2010 ejs@seniejitrakai.net, ejs@ar.vgtu.lt"<br />
	Wscript.Echo "                                             http://ejs.seniejitrakai.net"<br />
  else<br />
	oldIPAddress    = args.Item(0)<br />
	newIPAdress = args.Item(1)<br />
        Dim strComputer<br />
        Dim Result<br />
        strComputer = "."<br />
        Result = ""<br />
	Set objWMIService = GetObject("winmgmts:" &#038; _<br />
"{impersonationLevel=impersonate,(LoadDriver)}!\\" &#038; strComputer &#038; _<br />
"\root\cimv2")<br />
	Set colPorts = objWMIService.ExecQuery ("Select * from Win32_TCPIPPrinterPort")<br />
	For Each objPort in colPorts<br />
		wscript.echo "Found TCP/IP printer port: " &#038; objPort.HostAddress  &#038; ", named " &#038; objPort.Name<br />
	if UCase(Mid(objPort.HostAddress, 1, Len(oldIPAddress))) = oldIPAddress Then<br />
		objPort.HostAddress = newIPAdress &#038;  Mid(objPort.HostAddress, Len(oldIPAddress)+1)<br />
		Wscript.Echo "New Printer port: " &#038; objPort.HostAddress<br />
		Result =  objPort.Put_<br />
	    If Len(Result) > 0 Then<br />
			WScript.Echo "Updated TCP/IP printer port: " &#038; objPort.HostAddress &#038; ", named " &#038; objPort.Name<br />
		Else<br />
			WScript.Echo "Error " &#038; Result &#038; " updating TCP/IP printer port: " &#038; objPort.HostAddress<br />
			WScript.Quit<br />
		End If<br />
	 end if<br />
	 Next<br />
end if<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2010/10/20/migration-hell-moving-printers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A single song</title>
		<link>http://ejs.seniejitrakai.net/2010/06/16/one-song/</link>
		<comments>http://ejs.seniejitrakai.net/2010/06/16/one-song/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 22:33:12 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Hobbies]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/?p=157</guid>
		<description><![CDATA[I&#8217;ve been working for maybe the third day when i&#8217;ve heard it on some Internet radio station. The song was performed by Mary Hopkin. It&#8217;s tracing back to 1920-ies, was banned up to 1950-ies. Anyway Wikipedia knows more about it. Dude, i&#8217;m feeling to old for rock-n-roll &#8220;Дорогой длинною&#8221;, Сергей Зыков (Youtube post by tombene77): [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working for maybe the third day when i&#8217;ve heard it on some Internet radio station. The song was  performed by Mary Hopkin. It&#8217;s tracing back to 1920-ies, was banned up to 1950-ies. Anyway <a href="http://en.wikipedia.org/wiki/Those_Were_the_Days_%28song%29">Wikipedia knows more about it</a>.</p>
<p>Dude, i&#8217;m feeling to old for rock-n-roll <img src='http://ejs.seniejitrakai.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p align ="center">
<a href="http://www.youtube.com/watch?v=FLC4uOkwWKs">&#8220;Дорогой длинною&#8221;, Сергей Зыков </a> (Youtube post by <a href="http://www.youtube.com/user/tombene77">tombene77</a>):<br />
<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/FLC4uOkwWKs&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/FLC4uOkwWKs&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object><br />
<span id="more-157"></span></p>
<p align ="center">
<a href="http://www.youtube.com/watch?v=lNVit7cesj8">&#8220;Those were the days&#8221;, Mary Hopkin</a> (Youtube post by <a href="http://www.youtube.com/user/Ibicus">Ibicus</a>):<br />
<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/lNVit7cesj8&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lNVit7cesj8&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p align ="center">
<a href="http://www.youtube.com/watch?v=sMUDlhQPOUo">&#8220;Quelli Erano Giorni&#8221;, Gigliola Cinquetti</a> (Youtube post by <a href="http://www.youtube.com/user/tengokuemaki">tengokuemaki</a>):<br />
<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/sMUDlhQPOUo&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/sMUDlhQPOUo&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p align ="center">
<a href="http://www.youtube.com/watch?v=r-mRHxpax_4">&#8220;Le temps des fleurs&#8221;, Dalida </a> (Youtube post by <a href="http://www.youtube.com/user/VenitienDeLevallois">VenitienDeLevallois</a>):<br />
<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/r-mRHxpax_4&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/r-mRHxpax_4&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p align ="center">
<a href="http://www.youtube.com/watch?v=T-jtxFOsmsk">&#8220;An jenem Tag&#8221;, Dunja Rajter</a> (Youtube post by <a href="http://www.youtube.com/user/fritz51223">fritz51223</a>):<br />
<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/T-jtxFOsmsk&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/T-jtxFOsmsk&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
<p align ="center">
<a href="http://www.youtube.com/watch?v=kV4SiPWrW0Y">&#8220;Kelelis tolimas&#8221;, Virgis Stakėnas </a> (Youtube post by <a href="http://www.youtube.com/user/starkaes">starkaes</a>):<br />
<object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/kV4SiPWrW0Y&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/kV4SiPWrW0Y&#038;hl=en_US&#038;fs=1&#038;rel=0&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2010/06/16/one-song/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Dolomites</title>
		<link>http://ejs.seniejitrakai.net/2009/07/11/the-dolomites/</link>
		<comments>http://ejs.seniejitrakai.net/2009/07/11/the-dolomites/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 20:42:11 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Trips]]></category>
		<category><![CDATA[Dolomites]]></category>
		<category><![CDATA[Italy]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/2009/07/11/the-dolomites/</guid>
		<description><![CDATA[Here is the (unfinished) map of passes in Dolomites, created in Google Maps. You can also search for photos of the passes.]]></description>
			<content:encoded><![CDATA[<p>Here is the (unfinished) map of <a href="http://maps.google.com/maps/ms?ie=UTF8&#038;hl=en&#038;msa=0&#038;msid=116697046419143006099.00046e70d62518e4f300e&#038;ll=46.532414,12.052002&#038;spn=0.931506,2.469177&#038;t=p&#038;z=9">passes in Dolomites</a>, created in Google Maps.<br />
You can also <a href="http://gallery.ejs.seniejitrakai.net/main.php?g2_view=search.SearchScan&#038;g2_form[formName]=search_SearchBlock&#038;g2_form[searchCriteria]=passo&#038;g2_form[useDefaultSettings]=1" target="_new">search for photos of the passes</a>.</p>
<p><iframe width="800" height="400" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=116697046419143006099.00046e70d62518e4f300e&amp;ll=46.532414,12.052002&amp;spn=0.931506,2.469177&amp;t=p&amp;z=9&amp;output=embed"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2009/07/11/the-dolomites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekend project &#8211; USBasp</title>
		<link>http://ejs.seniejitrakai.net/2008/09/21/weekend-project-usbasp/</link>
		<comments>http://ejs.seniejitrakai.net/2008/09/21/weekend-project-usbasp/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 18:26:50 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Atmel]]></category>
		<category><![CDATA[ISP]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/?p=89</guid>
		<description><![CDATA[I had some ideas to go out before, but as i got terrible cold last Friday, I had to postpone all of them. I feel a bit better today, so decided to build USBasp &#8211; an USB port ISP programmer for Atmel product family. I used STK 200/300 dongle before, but it works from parallel [...]]]></description>
			<content:encoded><![CDATA[<p>I had some ideas to go out before, but as i got terrible cold last Friday, I had to postpone all of them.</p>
<p>I feel a bit better today, so decided to build USBasp &#8211; an USB port ISP programmer for Atmel product family. I used STK 200/300 dongle before, but it works from parallel port only.<br />
<a href='http://ejs.seniejitrakai.net/USBasp/USBasp_stage1.jpg'><img class="right" src="http://ejs.seniejitrakai.net/USBasp/usbasp_stage1-300x105.jpg" alt="USBasp: fresh PCB" title="usbasp_stage1" width="300" height="105"/></a><br />
Lets start: the schematics is from <a href="http://www.fischl.de/usbasp/"> http://www.fischl.de/usbasp/ </a>. You can find some schematics and pre-routed PCB&#8217;s there. </p>
<p>What I need is USB B type or MiniUSB connector, SMD parts, small footprint, single &#8211; sided PCB. The one I liked is by Thomas Pfeifer, <a href="http://thomaspfeifer.net/atmel_usb_programmer.htm"> http://thomaspfeifer.net/atmel_usb_programmer.htm</a>. The problem is I found no files for Eagle there and had to re-create the PCB. </p>
<p>Additional features are:</p>
<ul>
<li>RC filters on MOSI, MISO and SCK lines to suppress ringing, as suggested in <a href="http://www.avrfreaks.net/index.php?name=PNphpBB2&#038;file=viewtopic&#038;t=33265">AVR Freaks forum</a>;</li>
<li>Signal from oscillator (XTAL1) is routed to the pin 3 on IDC connector via jumper &#8211; a handy feature to debrick the MCU if you accidentally fused external oscillator;</li>
<li>Inductor on the power line.</li>
</ul>
<p>The PDF files with the layout are <a href="http://ejs.seniejitrakai.net/USBasp/USBasp_single_sided_board.pdf">here</a>, an A6 &#8211; size mirrored image for direct printing on OHP is <a href="http://ejs.seniejitrakai.net/USBasp/USBasp_bottom_mirrored_multi.pdf">here</a>. </p>
<p>Added on 2008-10-01:<br />
<a href='http://ejs.seniejitrakai.net/USBasp/usbasp-top-populated_.jpg'><img src="http://ejs.seniejitrakai.net/USBasp/usbasp-top-populated_-300x122.jpg" alt="USBasp top side, populated" title="USBasp top side, populated" width="300" height="122" class="right" /></a><br />
<a href='http://ejs.seniejitrakai.net/USBasp/usbasp-bottom-populated.jpg'><img src="http://ejs.seniejitrakai.net/USBasp/usbasp-bottom-populated-300x114.jpg" alt="USBasp bottom side, populated" title="USBasp bottom side, populated" width="300" height="114" class="right" /></a><br />
First, it works. Both connected directly or via USB hub.<br />
Second: don&#8217;t create anything while you are ill. Actually, pin number 5 on miniUSB connector MUST be grounded, while pin number 4 can be grounded or left floating. I&#8217;ve used i jumper wire to solve the issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2008/09/21/weekend-project-usbasp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hacking the FlexLM keygens</title>
		<link>http://ejs.seniejitrakai.net/2008/08/21/hacking-the-flexlm-keygens/</link>
		<comments>http://ejs.seniejitrakai.net/2008/08/21/hacking-the-flexlm-keygens/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 17:52:43 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/?p=88</guid>
		<description><![CDATA[Ok, it&#8217;s ugly and illegal, i know. The information here is for educational purposes only. Sometimes i&#8217;m asked to &#8220;cure&#8221; one or another product, protected by registration or network license manager, like FlexLM. And you know, a lot of keygens for these product found in the Internet, do not work. The usual error is &#8220;Internal [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, it&#8217;s ugly and illegal, i know. The information here is for educational purposes only.</p>
<p>Sometimes i&#8217;m asked to &#8220;cure&#8221; one or another product, protected by registration or network license manager, like FlexLM. And you know, a lot of keygens for these product found in the Internet, do not work. The usual error is <em><strong>&#8220;Internal Error #{1..6} &#8211; Please be sure the app is running and on the license screen!&#8221;</em></strong>. What&#8217;s wrong, why the keygens from the glorious crack groups do not work any more?</p>
<p>Search on the Internet revealed almost nothing: from &#8220;the kyegen does not work&#8221; to &#8220;it works perfectly&#8221;, some says one must use genuine windows the keygen to work (wow&#8230;).</p>
<p>Let&#8217;s start a little investigation.<span id="more-88"></span></p>
<p>Some keygens are packed with some kind of packer, like UPX. I&#8217;m too lazy to extract them.<br />
So i&#8217;ve found an unpacked version of keygen for AutoCAD 2008, created an evaluation installation of AutoCAD 2008 from Autodesk Revit Architecture 2008 (i have a license for it to run on the network, by the way) and started my explorations.</p>
<p>A usual PE executable consists of some sections: header, data, imported functions, static variables and text resourses. Text resourses are usually located near the end of the file, and it is the very first place to look for an information.<br />
The very first string&#8217;s i have noticed, at the very beginning of text resourses were &#8220;<em>acad.exe</em>&#8221; and &#8220;<em>~de81d5.tmp</em>&#8220;. But wait, when running AutoCAD, i have 4 files with constant names in &#8220;%TEMP%/AdskCleanup.0001.dir.0000&#8243;. Their names are &#8220;<em>PfdRun.pfd</em>&#8220;, &#8220;<em>~de0acb.tmp</em>&#8220;, &#8220;<em>~df294b.tmp</em>&#8221; and &#8220;<em>~efe2.tmp</em>&#8220;. Only two of them has names with 7 symbols (like in keygen&#8217;s &#8220;~de81d5.tmp&#8221;). The *.tmp files seems like PE executables.<br />
A quick edit in the keygen to match the actual names and &#8230; </p>
<p>The mysterious error is gone, you can paste a request code in the keygen.</p>
<p>And &#8230;. &#8220;REQUEST CODE ERROR!&#8221;</p>
<p>Let&#8217;s summarize:</p>
<ul>
<li>every product line Autodesk ships uses unique set of registration keys. This also means that AutoCAD 2008 sold as separate product will have different encryption keys that the AutoCAD2008, sold as &#8220;Revit Architecture suite 2008&#8243;;</li>
<li>the keygen searches for predefined file in &#8220;%TEMP%/AdskCleanup.0001.dir.0000&#8243;, extracts encryptions keys (?) and generates authentification code, depending on your request;</li>
<li>if the keygen does not find a predefined file in the predefined place, a famous &#8220;Internal Error #&#8230;&#8221; will be generated;</li>
<li>as keygen works with predefined location of encryption keys, it is not capable of generating authentification code for different products</li>
</ul>
<p>So, what&#8217;s to do if You got the famous &#8220;Internal Error #..&#8221;?<br />
Buy the product. Or search for another keygen.</p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2008/08/21/hacking-the-flexlm-keygens/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s go get lost</title>
		<link>http://ejs.seniejitrakai.net/2008/02/25/lets-go-get-lost/</link>
		<comments>http://ejs.seniejitrakai.net/2008/02/25/lets-go-get-lost/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 23:23:17 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[Dolomites]]></category>
		<category><![CDATA[Dubrovnik]]></category>
		<category><![CDATA[Hrvatska]]></category>
		<category><![CDATA[Italy]]></category>
		<category><![CDATA[navigation]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/2008/02/25/lets-go-get-lost/</guid>
		<description><![CDATA[Actually, up to Munich i had no GPS signal when the Asus was charging in the car cradle &#8211; a stupid problem. When surfing web in Munich I&#8217;ve found a patch to solve the problem in WM5 from the same Asus. After this everything went fine and you can see the whole journey here. Asus [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://ejs.seniejitrakai.net/keliones/Italy/full.html' target='_blank' title='Full trip (amost)'><img class="right"  src='http://ejs.seniejitrakai.net/keliones/Italy/full.thumbnail.png' alt='Full trip (amost)' /></a>Actually, up to Munich i had no GPS signal when the Asus was charging in the car cradle &#8211; a stupid problem.<br />
When surfing web in Munich I&#8217;ve found a patch to solve the problem in WM5 from the same Asus. After this everything went fine and you can see the whole journey here.<br />
Asus had solved this problem in later firmware releases  for WM5 as well as for WM6. So, let&#8217;s start exploring Italy: <a href='http://ejs.seniejitrakai.net/keliones/Italy/full.png' target='_blank' title='full trip'>Full trip (amost)</a><br />
<span id="more-67"></span></p>
<table cellpadding="2px">
<tr>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-07-31-e50m.png' target='_blank' title='2007-07-31'>2007-07-31</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-07-31-e50m.html' target='_blank' title='2007-07-31'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-07-31-e50m.thumbnail.png' alt='track for 2007-07-31' /></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-01-e50m.png' target='_blank' title='2007-08-01'>2007-08-01</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-01-e50m.html' target='_blank' title='2007-08-01'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-01-e50m.thumbnail.png' alt='track for 2007-08-01' /></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-02-e50m.png' target='_blank' title='2007-08-02'>2007-08-02</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-02-e50m.html' target='_blank' title='2007-08-02'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-02-e50m.thumbnail.png' alt='track for 2007-08-02' /></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-03-e50m.png' target='_blank' title='2007-08-03'>2007-08-03</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-03-e50m.html' target='_blank' title='2007-08-03'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-03-e50m.thumbnail.png' alt='track for 2007-08-03' /></td>
</tr>
<tr>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-04-e50m.png' target='_blank' title='2007-08-04'>2007-08-04</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-04-e50m.html' target='_blank' title='2007-08-04'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-04-e50m.thumbnail.png' alt='track for 2007-08-04' /></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-05-e50m.png' target='_blank' title='2007-08-05'>2007-08-05</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-05-e50m.html' target='_blank' title='2007-08-05'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-05-e50m.thumbnail.png' alt='track for 2007-08-05' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-06-e50m.png' target='_blank' title='2007-08-06'>2007-08-06</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-06-e50m.html' target='_blank' title='2007-08-06'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-06-e50m.thumbnail.png' alt='track for 2007-08-06' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-07-e100m.png' target='_blank' title='2007-08-07'>2007-08-07</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-07-e100m.html' target='_blank' title='2007-08-07'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-07-e100m.thumbnail.png' alt='track for 2007-08-07' /></a></td>
</tr>
<tr>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-08-e50m.png' target='_blank' title='2007-08-08'>2007-08-08</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-08-e50m.html' target='_blank'  title='2007-08-08'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-08-e50m.thumbnail.png' alt='track for 2007-08-08' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-09-e50m.png' target='_blank' title='2007-08-09'>2007-08-09</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-09-e50m.html' target='_blank'  title='2007-08-09'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-09-e50m.thumbnail.png' alt='track for 2007-08-09' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-10-e50m.png' target='_blank' title='2007-08-10'>2007-08-10</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-10-e50m.html' target='_blank'  title='2007-08-10'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-10-e50m.thumbnail.png' alt='track for 2007-08-10' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-11-e50m.png' target='_blank' title='2007-08-11'>2007-08-11</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-11-e50m.html' target='_blank'  title='2007-08-11'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-11-e50m.thumbnail.png' alt='track for 2007-08-11' /></a></td>
</tr>
<tr>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-13-e50m.png' target='_blank' title='2007-08-13'>2007-08-13</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-13-e50m.html' target='_blank'  title='2007-08-13'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-13-e50m.thumbnail.png' alt='track for 2007-08-13' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-14-e50m.png' target='_blank' title='2007-08-14'>2007-08-14</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-14-e50m.html' target='_blank'  title='2007-08-14'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-14-e50m.thumbnail.png' alt='track for 2007-08-14' /></a></td>
<td><center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-15-e50m.png' target='_blank' title='2007-08-15'>2007-08-15</a></center><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-15-e50m.html' target='_blank'  title='2007-08-15'><img src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-15-e50m.thumbnail.png' alt='track for 2007-08-15' /></a></td>
<td></td>
</tr>
</table>
<p><center>These Smiling eyes are just a mirror for<br />
Just a mirror for the sun<br />
Just a mirror for the sun<br />
Just a mirror for the sun<br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2008/02/25/lets-go-get-lost/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating eye-candy from dead i-GO tracks</title>
		<link>http://ejs.seniejitrakai.net/2008/02/24/creating-eye-candy-from-dead-i-go-tracks/</link>
		<comments>http://ejs.seniejitrakai.net/2008/02/24/creating-eye-candy-from-dead-i-go-tracks/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 19:29:53 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[GPSbabel]]></category>
		<category><![CDATA[GPSvisualizer]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/2008/02/24/creating-eye-candy-from-dead-i-go-tracks/</guid>
		<description><![CDATA[As, I&#8217;ve mentioned earlier, we had a pleasant trip through Italy the last summer. I have recorded the whole trip to my GPS unit using i-GO navigation program. Seems like 10 second recording intervals are fine and the track is quite precise and smooth. Unfortunately, during upgrade from WM5 to WM6 I had to reinstall [...]]]></description>
			<content:encoded><![CDATA[<p><img class="right" src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-07-e100m.thumbnail.png' alt='sample track' /></p>
<p>As, I&#8217;ve mentioned <a href="http://ejs.seniejitrakai.net/2008/02/22/lcd-screen-change-for-asus-mypal-639/">earlier</a>, we had a pleasant trip through Italy the last summer. I have recorded the whole trip to my GPS unit using i-GO navigation program. Seems like 10 second recording intervals are fine and the track is quite precise and smooth.<br />
Unfortunately, during upgrade from WM5 to WM6 I had to reinstall i-Go and all tracks just dissapeared from track list in i-GO. Stupid me, i HAD to save &#8216;igo.db&#8217; file somewhere.<br />
I found no way to put them back, so let the fun begin.<br />
A short glimpse into one of the files and..
<pre>
...
$GPGSA,A,3,04,20,13,23,31,11,,,,,,,2.0,1.2,1.6*33
$GPRMC,061120.287,A,5414.2734,N,02337.5314,E,54.08,261.55,290707,,,A*50
$GPGGA,061121.000,5414.2726,N,02337.5281,E,1,06,1.2,152.2,M,31.0,M,,0000*54
...
</pre>
<p>Hey, do You think the same way? Yes, it&#8217;s NMEA data in plain text.<br />
<span id="more-65"></span></p>
<p>Ok, the Tool &#8211; <a href="http://www.gpsbabel.org/">GPSbabel</a> is ready. It can read and write a lot of GPS data formats.  Let&#8217;s try:</p>
<pre>
$ sudo apt-get install gpsbabel
</pre>
<p>, a handy script &#8216;nmea2gpx&#8217; from <a href="http://wiki.openstreetmap.org/index.php/NMEA#Converting_NMEA_text_dumps_.28with_gpsbabel.29">here</a><br />
and let the fun begin:</p>
<pre>
$ for i in `ls *.bin`; do ./nmea2gpx $i; done
</pre>
<p>The conversion is smooth. You can discard files files up to about 400B &#8211; they usually contains only empty GPX  structure.</p>
<p>But the resulting data set is HUGE: initial data set is 182MB, the resulting GPX files uses MB.<br />
It&#8217;s fine if you need very detailed track info, but two problems arise:</p>
<ul>
<li>due to the nature of GPS it&#8217;s inaccurate, if you use the receiver in dense urban areas</li>
<li>you do not need this amount of information to create daily track or a track for the whole journey</li>
</ul>
<p>And again, let&#8217;s turn back to GPSbabel. It has a lot of filters to improve overall usability of saved data:</p>
<pre>
$ gpsbabel -i gpx -f 2007-08-07.gpx -x simplify,crosstract,error=0.002k -o gpx -F 2007-08-07-e2m.gpx
$ gpsbabel -i gpx -f 2007-08-07.gpx -x simplify,crosstract,error=0.005k -o gpx -F 2007-08-07-e5m.gpx
$ gpsbabel -i gpx -f 2007-08-07.gpx -x simplify,crosstract,error=0.01k -o gpx -F 2007-08-07-e10m.gpx
$ gpsbabel -i gpx -f 2007-08-07.gpx -x simplify,crosstract,error=0.05k -o gpx -F 2007-08-07-e50m.gpx
$ gpsbabel -i gpx -f 2007-08-07.gpx -x simplify,crosstract,error=0.1k -o gpx -F 2007-08-07-e100m.gpx
$ gpsbabel -i gpx -f 2007-08-07.gpx -x discard,hdop=10 -o gpx -F 2007-08-07-hdop10.gpx
$ gpsbabel -i gpx -f 2007-08-07.gpx -x discard,hdop=6 -o gpx -F 2007-08-07-hdop6.gpx

 $ ls -al *08-07*.gpx
-rw-r--r-- 1 ejs ejs 5321544 2008-02-24 20:41 2007-08-07.gpx
-rw-r--r-- 1 ejs ejs  343808 2008-02-24 21:00 2007-08-07-e10m.gpx
-rw-r--r-- 1 ejs ejs  909181 2008-02-24 20:56 2007-08-07-e2m.gpx
-rw-r--r-- 1 ejs ejs  541929 2008-02-24 20:59 2007-08-07-e5m.gpx
-rw-r--r-- 1 ejs ejs  117973 2008-02-24 21:31 2007-08-07-e50m.gpx
-rw-r--r-- 1 ejs ejs   69973 2008-02-24 21:38 2007-08-07-e100m.gpx
-rw-r--r-- 1 ejs ejs 5072358 2008-02-24 20:52 2007-08-07-hdop10.gpx
-rw-r--r-- 1 ejs ejs 4983846 2008-02-24 20:52 2007-08-07-hdop6.gpx
</pre>
<p>Summarize the above:</p>
<p><a href='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-07-e100m.png' title='100 meter error, data rate reduced 75 times'><img class="right" src='http://ejs.seniejitrakai.net/keliones/Italy/2007-08-07-e100m.thumbnail.png' alt='100 meter error, data rate reduced 75 times' /></a></p>
<ul>
<li>reducing maximum allowable Horizontal Dilution of Precision (HDOP) makes almost no change to data size</li>
<li>using &#8216;crosstrack&#8217; filter and removing points maximum 50 meters away from track, reduced dataset size 10 times. Using 100 meters error reduces dataset almost 75 times, but you can see in the image and <a href="http://ejs.seniejitrakai.net/2007-08-07-e100m.html" target="_blank">here</a>, the data it is still usable.</li>
</ul>
<p>The perfect and free tool to overlay the GPX track onto the globe is <a href="http://www.gpsvisualizer.com/">GPS visualizer </a>. Use it.</p>
<p>The proposed workflow is:
<ol>
<li>download tracks the tracks you need to the computer</li>
<li>convert them to GPX</li>
<li>merge day track to single file</li>
<li>apply &#8216;crosstalk&#8217; filter with maximum error of 100 &#8211; 200 meters to the daily track file. Your goal is to get 150-500kB file, depending on the road network and conditions.</li>
<li>merge daily track files to single trip file</li>
<li>apply &#8216;crosstalk&#8217; filter with maximum error of 1 &#8211; 2 kilometers to the trip file, depending on the road network and conditions.</li>
<li>register at Google Maps to get your API key, as it&#8217;s stated in <a href="http://www.gpsvisualizer.com/faq.html">GPS visualizer FAQ</a></li>
<li>proceed your files with <a href="http://www.gpsvisualizer.com/">GPS visualizer </a></li>
<li>donate</li>
<li>enter your Google Maps API key into every saved HTML file from GPSvisualizer.com. You HAVE saved the files, have You?</li>
<li>arrange the presentation of your wanderings</li>
<li>enjoy</li>
</ol>
<pre>
$ gpsbabel -i gpx -f 2007-07-31.gpx -i gpx -f 2007-08-01.gpx -i gpx -f 2007-08-02.gpx \
 -i gpx -f 2007-08-03.gpx -i gpx -f 2007-08-04.gpx -i gpx -f 2007-08-05.gpx \
 -i gpx -f 2007-08-06.gpx -i gpx -f 2007-08-07.gpx -i gpx -f 2007-08-08.gpx \
 -i gpx -f 2007-08-09.gpx -i gpx -f 2007-08-10.gpx -i gpx -f 2007-08-11.gpx \
 -i gpx -f 2007-08-13.gpx -i gpx -f 2007-08-14.gpx -i gpx -f 2007-08-15.gpx -o gpx -F full.gpx

$ gpsbabel -i gpx -f full.gpx -x simplify,crosstract,error=0.5k -o gpx -F full-e500m.gpx
$ gpsbabel -i gpx -f full.gpx -x simplify,crosstract,error=1k -o gpx -F full-e1km.gpx
$ gpsbabel -i gpx -f full.gpx -x simplify,crosstract,error=2k -o gpx -F full-e2km.gpx
$ls -al

lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-07-31.gpx -> ../daily/2007-07-31/2007-07-31.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-01.gpx -> ../daily/2007-08-01/2007-08-01.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-02.gpx -> ../daily/2007-08-02/2007-08-02.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-03.gpx -> ../daily/2007-08-03/2007-08-03.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-04.gpx -> ../daily/2007-08-04/2007-08-04.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-05.gpx -> ../daily/2007-08-05/2007-08-05.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-06.gpx -> ../daily/2007-08-06/2007-08-06.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:38 2007-08-07.gpx -> ../daily/2007-08-07/2007-08-07.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-08.gpx -> ../daily/2007-08-08/2007-08-08.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-09.gpx -> ../daily/2007-08-09/2007-08-09.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-10.gpx -> ../daily/2007-08-10/2007-08-10.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-11.gpx -> ../daily/2007-08-11/2007-08-11.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-13.gpx -> ../daily/2007-08-13/2007-08-13.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-14.gpx -> ../daily/2007-08-14/2007-08-14.gpx
lrwxrwxrwx 1 ejs ejs        34 2008-02-26 02:39 2007-08-15.gpx -> ../daily/2007-08-15/2007-08-15.gpx
-rw-r--r-- 1 ejs ejs    186733 2008-02-26 02:59 full-e1km.gpx
-rw-r--r-- 1 ejs ejs    111056 2008-02-26 03:01 full-e2km.gpx
-rw-r--r-- 1 ejs ejs    329869 2008-02-26 02:53 full-e500m.gpx
-rw-r--r-- 1 ejs ejs 107624591 2008-02-26 02:45 full.gpx
</pre>
<p>by, the way, while processing the last two gpsbabel commands and running Xorg , KDE and Iceape as usual:</p>
<pre>
top - 02:58:54 up  6:52,  6 users,  load average: 2.66, 1.93, 1.19
Tasks: 121 total,   4 running, 117 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.3%us,  0.7%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    516620k total,   508624k used,     7996k free,     2004k buffers
Swap:  1052216k total,   157092k used,   895124k free,    93384k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6173 ejs       25   0 86368  82m  840 R 48.9 16.3   2:59.09 gpsbabel
 6175 ejs       25   0 86372  82m  840 R 48.9 16.3   1:28.35 gpsbabel
</pre>
<p>The resulting GPS data with 1km error is presented <a href="http://ejs.seniejitrakai.net/2008/02/25/lets-go-get-lost/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2008/02/24/creating-eye-candy-from-dead-i-go-tracks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screen change for Asus MyPal 639</title>
		<link>http://ejs.seniejitrakai.net/2008/02/22/lcd-screen-change-for-asus-mypal-639/</link>
		<comments>http://ejs.seniejitrakai.net/2008/02/22/lcd-screen-change-for-asus-mypal-639/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 19:24:18 +0000</pubDate>
		<dc:creator>ejs</dc:creator>
				<category><![CDATA[Hobbies]]></category>
		<category><![CDATA[A639]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[LCD screen]]></category>

		<guid isPermaLink="false">http://ejs.seniejitrakai.net/2008/02/22/my-asus-mypal-639/</guid>
		<description><![CDATA[The unit served as almost perfect GPS navigator for our summer trip though the Italy. One regular February evening i took my Asus PDA and&#8230; Yep, a small problem. And a serious one. But&#8230; there&#8217;s a country named China. I like chinese. Really, dude. The price for 639&#8242;s LCD screen here in Lithuania is around [...]]]></description>
			<content:encoded><![CDATA[<p><img class='right' src='http://ejs.seniejitrakai.net/wp-content/uploads/Asus_screen.thumbnail.jpg' alt='little hand' /></p>
<p>The unit served as almost perfect GPS navigator for our summer trip though the Italy.  One regular February evening i took my Asus PDA and&#8230;<br />
Yep, a small problem. And a serious one.
</p>
<p><span id="more-49"></span></p>
<p>But&#8230; there&#8217;s a country named China.<br />
I like chinese. Really, dude. The price for 639&#8242;s LCD screen here in Lithuania is around 120â‚¬. You can grab one at <a href='http://search.ebay.com/search/search.dll?satitle=asus+639+lcd' target='_blank'>E-bay.com</a> for around $130 &#8211; it&#8217;s about 90â‚¬ in today&#8217;s exchange rates. If you look into <a href='http://search.ebay.co.uk/search/search.dll?satitle=asus+639+lcd' target='_blank'>ebay.co.uk</a>, the same LCD goes for Â£40 &#8211; it&#8217;s 60â‚¬. Shipping  &#8211; add 25â‚¬ more.</p>
<p>So, prepare 85â‚¬, wait several days and you can start the EXCHANGE.</p>
<table cellspacing="10">
<tr>
<td>
<a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1975.jpg' title='contents of the package'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1975.thumbnail.jpg' alt='contents of the package' /></a><br />what&#8217;s inside the package?</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1979.jpg' title='contents revealed'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1979.thumbnail.jpg' alt='contents revealed' /></a> <br />invoice, screen, tools, cleaning cloth, protective film</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1981.jpg' title='the patient on the operating desk'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1981.thumbnail.jpg' alt='the patient on the operating desk' /></a><br />ah yes, i had to take the screen out</td>
</tr>
<tr>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1982.jpg' title='inside the asus'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1982.thumbnail.jpg' alt='inside the asus' /></a><br />take out protective plugs and unscrew 5 screws with the tool provided. Separate the bottom shell.</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1983.jpg' title='the new screen is being fitted'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1983.thumbnail.jpg' alt='the new screen is being fitted' /></a><br />CAUTION: do not push the LCD now!</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1984.jpg' title='you shold remove the keypad plate to fit the screen'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1984.thumbnail.jpg' alt='you shold remove the keypad plate to fit the screen' /></a><br />remove the keypad plate</td>
</tr>
<tr>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1985.jpg' title='screen is in the place'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1985.thumbnail.jpg' alt='screen is in the place' /></a><br />put the top part of the screen, widen the plastic shell and the screen will just pop in</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1986.jpg' title='front side of the Asus 639â€™s motherboard'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1986.thumbnail.jpg' alt='front side of the Asus 639â€™s motherboard' /></a><br />and yes, the front side of MoBo. Note the empty U7 place near the SD card. What it is for?</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1987c.jpg' title='now, proceed with connectors: keybord at the top, speaker in the left and LCD scheen in the bottom'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1987.thumbnail.jpg' alt='now, proceed with connectors: keybord at the top, speaker in the left and LCD scheen in the bottom' /></a><br />and now, the connectors: keypad on the top, speaker in the middle and the LCD on the bottom</td>
</tr>
<tr>
<td> <a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1990.jpg' title='the new LCD connector is hard to deal with'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1990.thumbnail.jpg' alt='the new LCD connector is hard to deal with' /></a><br />there&#8217;s almost no space left around and the LCD connector is hard to put in place.</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1991.jpg' title='the last is GPS unit connector'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1991.thumbnail.jpg' alt='the last is GPS unit connector' /></a><br />attach GPS antenna connector. Be carefull, it&#8217;s hardly repairable.</td>
<td><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1992.jpg' title='wake up, darling'><img class='center' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1992.thumbnail.jpg' alt='wake up, darling' /></a><br />Wake up, darling</td>
</tr>
</table>
<p><a href='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1993.jpg' title='LCD protecting film is being fitted'><img class='right' src='http://ejs.seniejitrakai.net/wp-content/uploads/dscn1993.thumbnail.jpg' alt='LCD protecting film is being fitted' /></a><br />And the protective film. Well, i should have it fitted before i&#8217;ve started to assemble the PDA&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ejs.seniejitrakai.net/2008/02/22/lcd-screen-change-for-asus-mypal-639/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

