tag:blogger.com,1999:blog-12972239817099917892024-03-13T01:31:12.815+01:00dev . kilokilo wandering on software & Speed Dreams landGabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.comBlogger53125tag:blogger.com,1999:blog-1297223981709991789.post-74431458190026087352016-09-02T12:27:00.001+02:002016-09-02T12:27:20.087+02:00Windows Update - why oh why...Yes, coding is fun. Coding on Windows may be fun. Working on Windows actually doesn't sound like fun at all, but can be considered 'normal'. But administering Windows is like a free ride in Hell that turns into a pricey maso-ride in Hell later.<br />
<br />
I'm developing on a Windows 10 64-bit image in VirtualBox. However after first install of Visual Studio it threw an error on me, quoting some elements couldn't be installed and I should update the system. Okay, I went into Control Panel, Windows Update, launched it - and then nothing happened. It just sat there for about 10 minutes and then told me it couldn't update because of Error 0x8024402f.<br />
Aha. Sure. Thanks.<br />
<br />
Googling around luckily I found (not on the first page...) a <a href="http://www.fixerrs.com/2015/08/Windows-update-error-0x8024402f.html" target="_blank">Fix Errors page</a> and followed the instructions there. Checked out first item, then the second one - although turning off a firewall surely doesn't seem like a good idea at any time. Still nothing. Then the last hint was that made the error go away - <b>enable ActiveX in my router</b>.<br />
<br />
Now I am angry, puzzled, astonished etc etc. Why on Earth can't an update proceed without any ActiveX sorcery? Why make it more complex than it should be???<br />
<br />
Microsoft. You are full of intelligent talented engineers. Just why????Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-7585228871564877952016-08-31T23:15:00.000+02:002016-08-31T23:15:15.559+02:00Ha! Coding is fun!You know it's been a while since I had to code something of larger size. There has been small utils for personal use and some fixes for existing projects, but nothing serious.<br />
Now I must do a re-write of a Visual Basic / MS SQL project for 64-bit, and it gives me a good 'thrilling' feeling to code, TO CODE (yes, shouting) again.<br />
<br />
OK, be prepared for more grumble soon as I dwelve deeper and deeper into the project...Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-74232893155031562982014-02-04T13:40:00.001+01:002014-02-04T13:40:30.097+01:00Rambling 2014/6 - DOSEMU and the USB-LPT printer<h4>
Setup</h4>
DOSEMU on a Xubuntu, running an MS-DOS application, that would like to print to LPT1. All fine, but what happens if you don't have a parallel port on that PC?<br />
<h4>
Details</h4>
We happened to have a Xubuntu machine and an old Epson LX-300, but the PC did not have any LPT ports. So the only way to connect them was via an USB-LPT connector. With that inline, the system did see the Epson and printed anything.<br />
However, the old MS-DOS application that runs in DOSEMU did not print anything. In fact, it printed but the bytes did not get to the printer.<br />
<h4>
Solution</h4>
The solution was hacking DOSEMU config (<i>/etc/dosemu/dosemu.conf</i>)<br />
In the section "<i>Printer and parallel port settings</i>" there are several lines of <i>lpr blahblah</i> command, all commented out. Take the first one and edit it to include the <b>name</b> of the printer (you can find it on the CUPS config webpage <i>localhost:631</i>), right after the -P option. So the line now looks like:<br />
<blockquote class="tr_bq">
<i>$_lpt1 = "lpr -PEpson-LX-300+"</i></blockquote>
Save it and collect all acknowledgments :)Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com1tag:blogger.com,1999:blog-1297223981709991789.post-91485767146278302452014-01-08T14:58:00.000+01:002014-01-08T14:58:36.288+01:00Rambling 2014/2 - Xubuntu 13.10 & SMBToday I've installed Xubuntu 13.10 (64bit) on a new machine. All worked fine, but couldn't connect to our server via SMB. That felt quite painful as my home dir was saved on the server :)<br />
After checking all usual things, it still did not work. Then came the solution from googling:<br />
<blockquote class="tr_bq">
<i>sudo apt-get install cifs-utils</i></blockquote>
That magically made everything work.<br />
Now I wonder - the installer packed a gazillion of smb* packages on the hard disk, why did it not include this tiny one that made the whole stuff work?Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-88108401571497891052012-09-21T13:05:00.000+02:002012-09-21T13:05:59.280+02:00Ooops - hide it under the carpet!I've done it. You've done it, too. In fact, many have done it and many will do it, for sure.<br />
<br />
<div style="text-align: center;">
<b>Pushed something unwanted to a public <i>git</i> repository by accident.</b></div>
<br />
Well, if you are lucky, you notice it very early. In 10 seconds, usually :)<br />
Damage is done, let's try to undo it - <b>fast</b>.<br />
<br />
<h4>
Solution #1</h4>
1) Remove the incriminated commit from the local repo:<br />
<i>git rebase -i</i><br />
<br />
2) Forced push to the remote repo:<br />
<i>git push -f origin +branchname</i><br />
<i><br /></i>
<h4>
Solution #2</h4>
(works for undoing the last N commit only)<br />
<i>git push -f origin HEAD^:branchname</i><br />
<br />
What's left? Crossing fingers and hope noone has pulled the repo during your manoeuvres :)Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-23658032905106485042012-07-26T00:19:00.000+02:002012-07-26T00:19:31.659+02:00VMware rantYet another Evernote-style entry to make sure I won't forget it...<br />
<br />
VMware Player on Xubuntu. From time to time it decides to re-compile itself, without the slightest chance to prevent it. Would not be a problem if it ran well but it fails to compile the network modules.<br />
<br />
Now I've found what to do:<br />
<blockquote class="tr_bq">
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
sudo mv /usr/lib/vmware/modules/binary /usr/lib/vmware/modules/binary.old</div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;">
sudo vmware-modconfig --console --install-all --appname="VMware Player" --icon="vmware-player"</div>
</blockquote>
And it works! There must be a more elegant, geeky solution but this week - I simply do not care!<br />
<a href="http://communities.vmware.com/message/1435302#1435302" target="_blank">Thanks, AndreiVajnall</a>!Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-67628232198012886732012-05-30T14:18:00.000+02:002012-05-30T14:18:24.600+02:00Moving git housesLately I've realised (or better, this has been bugging me for months now) that the repository I'm using on <a href="http://repo.or.cz/w/kilo_torcs_tracks.git" target="_blank">repo.or.cz</a> is messed up a little bit. Some branches are merged back to master, some are not, then branched again, etc etc. And the at same time, making these creations more public I'd like to make it more user-friendly and while <a href="http://repo.or.cz/">repo.or.cz</a> provides a nice, stable service, <a href="http://github.com/" target="_blank">github</a> on the other hand is armed with an issue tracker, a wiki and some more. Yes, it is more shiney and glittery :)<br />
<br />
With these two reasons on my mind, I've started 'migrating' the git repository from A to B. The following is a summary what I've done:<br />
<h3>
Moving houses from repo.or.cz to github, also means cleaning up the repos</h3>
<ul>
<li>create github_repo on github website with the web interface: <a href="https://github.com/kgkilo/tracks">http://github.com/kgkilo/tracks</a></li>
<li><i>cd ~/WORK</i></li>
<li><i>git clone github_repo tracks</i></li>
<li><i>git clone repo.or.cz/myrepo.git oldtracks</i></li>
</ul>
<ol>
</ol>
so at this point we have 2 directories, one for the new repo and one for the old one<br />
<i><ul>
<li><i>cd oldtracks</i></li>
<li><i>git remote rm origin</i> (just to play safe)</li>
</ul>
</i><ol>
</ol>
<h4>
cleaning up what we want to import</h4>
<br />
<ul>
<li><i>git filter-branch --subdirectory-filter <b>trackname</b> -- --all</i></li>
<li><i>mkdir <b>trackname</b></i></li>
<li><i>mv * <b>trackname</b></i></li>
<li><i>git add .</i></li>
<li><i>git commit</i></li>
</ul>
<br />
<h4>
importing</h4>
<br />
<ul>
<li><i>cd ../tracks</i></li>
<li><i>git remote add old-repo ../oldtracks</i></li>
<li><i>git co -b <b>trackname</b></i></li>
<li><i>git pull old-repo <b>trackname</b></i></li>
<li><i>git remote rm old-repo</i></li>
<li><i>mkdir <b>trackname</b></i></li>
<li><i>mv * <b>trackname</b></i></li>
<li><i>git add -f <b>trackname</b></i></li>
<li><i>git commit -a</i></li>
</ul>
<br />
<h4>
cleaning up the new repo</h4>
<br />
<ul>
<li><i>git rebase -i origin</i></li>
<li>squash, reword or delete commits (time to remove all the unwanted signs you've left behind earlier...)</li>
</ul>
<br />
<h4>
final steps</h4>
<br />
<ul>
<li>git log, git st, git do_everything_to_check_for_sanity.</li>
<li>repeat the above... really!</li>
<li><i>git co master</i></li>
<li><i>git push origin <b>trackname</b></i></li>
</ul>
<br />
And now... I can do this for all the branches... :)<br />
NB: the <i>filter-branch</i> step proved to be the most problematic one. It is not git's mistake, it is the result of my own careless, unwanted merges back to master sometimes. Something to get rid of, for sure.<br />
<br />
refs:<br />
<a href="http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/">http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/</a><br />
<a href="http://effectif.com/git/move-commit-from-one-branch-to-another">http://effectif.com/git/move-commit-from-one-branch-to-another</a><br />
<a href="http://zenoga.tumblr.com/post/6751990283/til-convenient-cherry-picking-from-another-git">http://zenoga.tumblr.com/post/6751990283/til-convenient-cherry-picking-from-another-git</a><br />
<a href="http://stackoverflow.com/questions/1365541/how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history">http://stackoverflow.com/questions/1365541/how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history</a><br />
also:<br />
<a href="http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html">http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html</a><br />
<a href="http://stackoverflow.com/questions/67699/how-do-i-clone-all-remote-branches-with-git">http://stackoverflow.com/questions/67699/how-do-i-clone-all-remote-branches-with-git</a><br />
<a href="http://www.zorched.net/2008/04/14/start-a-new-branch-on-your-remote-git-repository/">http://www.zorched.net/2008/04/14/start-a-new-branch-on-your-remote-git-repository/</a><br />
<br />Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-26678497477058308982012-03-20T00:58:00.000+01:002012-03-20T00:58:20.146+01:00git svn commit trick<a href="http://speed-dreams.org/">Speed Dreams</a> uses <i>SVN</i>. I prefer <i>git</i>. That leads to <i>git svn</i>.<br />
<br />
I've just invented for myself a new trick to use when I want to commit only some of my git commits to the central SVN repo. As often, git branching comes as a life-saver - I make a branch for SVN committing, remove the commits I don't want to push to SVN, do git svn dcommit, switch back to master and delete the temporary branch:<br />
<blockquote class="tr_bq">
<i>git checkout -b svnci</i><br /><i>git rebase -i HEAD~6</i> (usually that is quite enough)<br />in rebase: remove the commits I don't want to send to SVN<br /><i>git svn dcommit</i><br /><i>git checkout master</i><br /><i>git svn rebase</i><br /><i>git branch -d svnci</i></blockquote>
I still have to learn each day the use of easy branching in git. Maybe put up a poster somewhere "Did you branch something today?" :)<br />
<br />
PS: of course I've found I did reinvent the wheel. Damn I hate googling :s I've found an article from 2009 from a Mozilla dev about partial git svn commits: <a href="http://fredericiana.com/2009/12/31/partial-svn-dcommit-with-git/">http://fredericiana.com/2009/12/31/partial-svn-dcommit-with-git/</a><br />
While it is not the same technique, it is very much alike. And then you reach the comments... and *bang* there is my shiney new trick all put down 2 years ago :(((<br />
<br />Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-17470803241890124582012-03-14T00:15:00.000+01:002012-03-14T00:18:53.608+01:00Fun, fun, fun!Some thoughts about the Bamboo table I've mentioned in the previous post.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://photos.expertreviews.co.uk/images/front_picture_library_Expert_Reviews/dir_312/er_photo_156055_52.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="http://photos.expertreviews.co.uk/images/front_picture_library_Expert_Reviews/dir_312/er_photo_156055_52.jpg" width="320" /></a></div>
<div style="text-align: center;">
Photo from <a href="http://www.expertreviews.co.uk/">http://www.expertreviews.co.uk</a></div>
<br />
The exact name is Bamboo CTH-470 Pen & table. It comes with Windows/OS X software on a CD and the manual resides there, too. But you know, I'm on the Linux side...<br />
<br />
I've connected it via the USB port - and nothing happened. The table's LED lit up but no sign in Xubuntu that it had discovered any new hardware. But I was well-educated by that time, I knew I may be facing a 6-hour hard battle: <a href="http://ubuntuforums.org/showthread.php?t=1515562">http://ubuntuforums.org/showthread.php?t=1515562</a><br />
However, the topic starts with a brilliant summary of what one should do, courtesy of user <a href="http://ubuntuforums.org/member.php?u=699990">Favux</a>, even though the summary alone may be a huge printing task, too. It also includes a link to download the table's driver for Ubuntu before trying to compile drivers, etc etc. So it boiled down to a simple install from a PPA. Thanks, <a href="https://launchpad.net/~lekensteyn/+archive/wacom-tablet">Lekensteyn</a>! Then I've also found <a href="http://blog.jvc26.org/2012/02/02/wacom-bamboo-ubuntu-oneiric">another link</a> about the tables and that description uses Lekensteyn's, too.<br />
<br />
After installing from the PPA, and after a reboot, the table simply - worked. I've installed MyPaint and gave the table to my daughter - she could use it in one minute and now produces beautiful drawings each and every day. I did not have to explain the pen's rubber function at all, she just naturally used it once needed. She draws real abstract pictures, quite different from her real pencil drawings that always tell a story. You may think "oh sure the dad brags about her daughter painting" but it is in fact different. I brag about her drawing because that is one thing in life I've never been able to - best so far were stick figures :DGabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-25083611702408002672012-02-28T22:20:00.002+01:002012-02-28T22:22:40.661+01:00Borders, sides, barriersWell, after 'some' silence - and renaming the blog - let me share what I'm fiddling with these days.<br />
<br />
I'd like to build a track that models a temporary endurance track, using a standard, 2 * (2+1) lane motorway somewhere in Europe. That is, 2 lanes for normal traffic and one emergency lane, in both directions. There are some chicanes put up using huge plastic piles, a U-turn to turn onto the same motorway but the other side (other direction), a bridge, etc...<br />
Problem comes when you want to build it in Speed Dreams so that it looks great and works correct, too. Why? Here's a brief introduction.<br />
<br />
<br />
<span style="font-size: large;">Tracks in Speed Dreams</span><br />
<br />
In Speed Dreams' track format, you are given arbitrary length track segments, that have:<br />
<ul>
<li>width</li>
<li>2 borders (left and right)</li>
<li>2 sides (left and right) and</li>
<li>2 barriers (left and right).</li>
</ul>
The <i>width</i> is static, so you define the 'track width' at the beginning of the track description and it does not change from then. It is a limit very hard to live with and we aim to get it changed sometime soon.<br />
The <i>borders</i> are fixed width along each segment, but can change width on the next segment. The border also has 'height', that is the height of the border's outer side - just think of curbs on racetracks and you'll get the picture. If you set height to 0, it will be flat of course.<br />
Here comes the <i>side</i> - that should be the side of the track, like the grass next to the concrete strip on a racetrack. The side can change width linearly from the start to the end for each segment, so you can define narrow or wide areas next to the tracks easily.<br />
The <i>barriers</i> mean the physical edge of our tracks. There is no life outside the barrier on a Speed Dreams track - this is that farthest you can wander from the track. We use this to put up walls, fences, armco around the track.<br />
Well if you happen to use a 3D editor to change the track's landscape, you can of course define any scenery wwwwwaaaay behind the barrier, but that is only eye-candy - you cannot enter that realm with your car.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuqIth5O1IrrXORRSe8E8Fpq9aN_rha0I9jQWXqNuaHlF2Zz8aQdaWtXpcdOjMULjo9_mE2_J15gy5K48YwDSO9VV_uFAHePeQ0e1t4JTxTIQ9N4tKXOx9bcg5-nEyaRAXtEQjQXfKT-xe/s1600/motorway3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuqIth5O1IrrXORRSe8E8Fpq9aN_rha0I9jQWXqNuaHlF2Zz8aQdaWtXpcdOjMULjo9_mE2_J15gy5K48YwDSO9VV_uFAHePeQ0e1t4JTxTIQ9N4tKXOx9bcg5-nEyaRAXtEQjQXfKT-xe/s320/motorway3.png" width="320" /></a></div>
<div style="text-align: center;">
<b>Obligatory picture just to make all the lines above useless</b></div>
<br />
All of the above is much better described in <a href="http://commut3r.wordpress.com/">Andrew's tutorial</a>, worth checking out.<br />
<br />
<br />
<span style="font-size: large;">Chicane ahead!</span><br />
<br />
Now back to the original problem. At first you'd think there is nothing simpler than modelling a motorway: set track width to 3 lanes's width (which I've googled to be 3 * 3.75m usually for Europe), set some 50cm border to mark the transition from asphalt to grass, then use 2 metres of grass on the inside and 20m on the outside, then set up a fence as barrier and you are done.<br />
But we want chicanes to slow the cars down a bit before a U-turn! So technically speaking, the track is about 1.5-2 lanes wide only, goes from one edge of the 3 lanes to the other edge when entering or exiting the chicane. Still we want to use the 'side' for the grass areas and we must have barriers, too:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0j5i3Ba7KQlfx1LZx_nmGunhceBuvsdjxFEc2WApHp-i3nKLQdhXTDplecJV_ruxrBvrR3220jpQc_E-Oh0PDPAdAkUwxMEwgLmjADFpV1zQ0Aq32FY211QyHhc4aLORPEgJHgNeOXF1r/s1600/motorway1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0j5i3Ba7KQlfx1LZx_nmGunhceBuvsdjxFEc2WApHp-i3nKLQdhXTDplecJV_ruxrBvrR3220jpQc_E-Oh0PDPAdAkUwxMEwgLmjADFpV1zQ0Aq32FY211QyHhc4aLORPEgJHgNeOXF1r/s320/motorway1.png" width="320" /></a></div>
<div style="text-align: center;">
<b>Motorway with chicanes and the racingline cars will most likely follow</b></div>
<br />
That means we need borders that change their width along the segment's length. In Speed Dreams, our robots use the borders or the sides without any fear, if they seem to be 'good' for driving. So if you set the surfaces of the borders the same as the track, the robots will use the borders when chosing their racing line. If you set the side's surface the same, the robots will drive on the sides, too - but set it to some bumpy or grippy or slippery and the robots will keep away from it. That is ideal for us in this situation, we can use the borders as asphalt and the sides as grass.<br />
<br />
<br />
<span style="font-size: large;">Digital technique</span><br />
<br />
Now let's see our next picture:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl5ehoKSvCuTLad6mENwUvRsW4D4JLHdEe-oU9c4WyBRdiGhZOdz8lbeqT6LXFV3mmpj0IN3A1lJoj9yNdbbrC6YKdjhNpqaxWeJbGc_hP-FVh96-7m_BN9giRMk7_opC2XiOEFkbEQ8lZ/s1600/motorway2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhl5ehoKSvCuTLad6mENwUvRsW4D4JLHdEe-oU9c4WyBRdiGhZOdz8lbeqT6LXFV3mmpj0IN3A1lJoj9yNdbbrC6YKdjhNpqaxWeJbGc_hP-FVh96-7m_BN9giRMk7_opC2XiOEFkbEQ8lZ/s320/motorway2.png" width="320" /></a></div>
<div style="text-align: center;">
<b>Digital magic</b></div>
<br />
Sadly enough, borders cannot change width currently, so we have to use a trick somehow. This is what I'm trying now: whenever there is need, I cut the track segment into short pieces (quantate it...), see the ugly lilac lines. Every short segment will have a border with different width (gray lines, black distance markers), this is how I emulate the border width changing. In fact, it is changing, not continuosly but step-by-step, like when you digitize an analogue value (quantate then sample average for the segment).<br />
This is a dirty trick indeed and looks awful when you produce the track and try it in the simulator. However, Speed Dreams uses the track description only to make the cars know where to drive - what you see is a completely different story. The visuals can be edited in a 3D editor like Blender or AC3D and we can get rid of all the jigged borders there. Likewise, you could build a track on an iced lake completely covered with ice and only signposts to signal the track, or in a desert with camels showing the limits...<br />
<br />
<br />
<span style="font-size: large;">Does it work?</span><br />
<br />
Soon I'll tell you if I've succeeded or not.<br />
BTW did you like my 6-year-old-level graphics? This is our new toy in the family, a Bamboo table & pen - actually my daughter got it as a birthday present and she can draw beautiful drawings using it. Her dad obviously is not able to do the same :)Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-64276461662714137092011-10-14T10:13:00.001+02:002011-10-14T10:14:30.747+02:00printf("RIP Dennis Ritchie :( \n");There aren't many computer-related books on my shelf. But the white one* is there, and I guess it will be there as long as I have a shelf.<br />
<br />
Thank you, Dennis. RIP.<br />
<br />
<span class="Apple-style-span" style="font-size: xx-small;">* The C Programming Language, B.Kernighan, D.Ritchie</span>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-12192824644231895702011-09-06T09:18:00.000+02:002011-09-09T12:20:06.687+02:00git and nomad lifeThis entry is like a note to myself, just to help remember setting this thing up again if needed...<br />
<br />
So I have my <a href="http://repo.or.cz/w/kilo_torcs_tracks.git">track creations</a> in a public git repo at <a href="http://repo.or.cz/">repo.or.cz</a>.<br />
So far I've only been using it to publish my ideas to the world, but now my time schedule has changed and I wanted to gain full access from another computer, too.<br />
I had no problems using git clone to clone the project on the new computer. Then I've set up some tracking branch with '<i>git branch -t track_name origin/track_name</i>', fetched it with '<i>git fetch origin</i>' and began working on it after the merge: '<i>git merge origin/track_name</i>'.<br />
But then after some changes I wanted to push them to the repo, so I could continue work on the other computer. However I could not get it working unless adding a new user at <a href="http://repo.or.cz/reguser.cgi">repo.or.cz/reguser.cgi</a>. It also meant generating a new SSH key with ssh-keygen, and copying the public key to the appropriate edit field on the register page.<br />
Then I've edited the file .git/config and added a new line in the section '<i>[remote "origin"]</i>' a new line, right after the <i>fetch URL</i> line:<br />
<i>pushurl = ssh://newusername@repo.or.cz/srv/git/kilo_torcs_tracks.git</i><br />
<br />
Now I can fetch the whole thing issuing '<i>git fetch origin track_name</i>' and push to it '<i>git push origin track_name</i>'. The server asks for the SSH passphrase and voila it works.<br />
Right, it may be obvious for some, but I am happy now and wanted to share it :D<br />
<br />
Note #1: you may ask why did I not use my existing pubkey to register. Simple: forgot where my USB stick with my pubkey was, and did not want to wait 3 more days with the whole procedure when I got back to the same situation... yes I know, I am lazeeeeehhhh.<br />
<br />
Note #2: remember, don't <i>git pull</i>, rather <i>git fetch</i> and then <i>git merge</i>... Details <a href="http://longair.net/blog/2009/04/16/git-fetch-and-merge/">here</a> and <a href="http://gitready.com/beginner/2009/03/09/remote-tracking-branches.html">here</a>.Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-49639355471940228652011-08-28T00:08:00.000+02:002011-08-28T00:08:28.978+02:00Knockhill dilemma solvedThanks to everyone who has expressed his/her opinion about my planned track.<br />
<br />
The results are:<br />
Realistic: 5<br />
Easy: 2<br />
<br />
manfariel has even produced side-by-side videos with a real-life on-board lap on the left and himself driving around the track in Speed Dreams, on the right, synchronised. Wow!<br />
<br />
So the more realistic option wins, even without my own vote. Thanks again for sharing your views.Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com2tag:blogger.com,1999:blog-1297223981709991789.post-37692723194394509102011-08-14T01:34:00.002+02:002011-08-15T12:48:35.777+02:00Knockhill dilemma<br />
<div style="text-align: center;"><span class="Apple-style-span" style="font-size: large;">HELP NEEDED!</span></div><br />
I've been working on a track for some time now, <a href="http://www.knockhill.com/about_us/index.php">Knockhill</a> in Scotland.<br />
<br />
It is a 2 km long (or better, short), fast track with very interesting corners, turns and altitude changes. What gives me headaches is the latter one. The information available of the track says that it is "varying by around 200 feet (60m) from highest to lowest point." I've mapped the track outline, tried to get the altitude and banking changes right, but I have a burning un-certain feeling in my soul about it.<br />
<br />
At first try I've made it so that the Z-size, ie the difference between the lowest and highest point on track was 200ft. Man, was that track hard to drive? Sure it was. It had some drops that you would even think about going down there by bike, not even a racecar... Robots behaved very different in the drops and climbs, some were flying out straight ahead like an F-14 catapults from a carrier ship, others slowed down and managed to follow the track more safe. In short, the track looked and behaved too dangerous.<br />
<br />
Now, I haven't been to the track IRL. I only know it from photos and BTCC races available on Youtube. So I've never walked down there on those slopes to get a real feeling of them. There may be this kind of sharp changes in altitude, or there may be not.<br />
<br />
My next idea was to halve the altitude changes of the track. It was easy to do, only had to change the 'grade' and 'profile end tangent' values of each segment in the track XML file. After generating the track, I was eager to see how it feels to drive around. And - I liked it more than the original! It seems the robots like it more, too. It simply feels more natural.<br />
<br />
So I have this track that feels great to drive, and another one that is more hi-fi in regards of data. Which one is better? I cannot decide, so please help me! The two versions are available <a href="http://dl.dropbox.com/u/22073702/knock.zip">here (safe one)</a> and <a href="http://dl.dropbox.com/u/22073702/knock2.zip">here (tricky one)</a>. Please download and test them and share you views either in the comments or via e-mail.<br />
<div style="text-align: center;"><br />
</div><div style="text-align: center;">Remember, <b>I need your help</b></div>or this track won't be finished ever and all the great resources used for creating it will be lost forever to humanity :D<br />
<br />
<span class="Apple-style-span" style="font-size: x-small;">NB the tracks are unfinished - they don't have a pitlane, textures are basic, etc. But they are drivable. I've driven them in Speed Dreams, but I guess they also work in TORCS. To install them, just copy the contents of the archives to the track/road location, in a folder named 'knock'.</span>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com1tag:blogger.com,1999:blog-1297223981709991789.post-66879892206842583252011-06-30T00:44:00.000+02:002011-06-30T00:44:07.028+02:00Install Speed Dreams on Ubuntu<span class="Apple-style-span" style="font-family: inherit;">Following up of my <a href="http://kiloandtorcs.blogspot.com/2009/09/install-torcs-on-ubuntu.html">TORCS install howto</a>, today I'll tell you what I had to do to get Speed-Dreams up and working on a brand new, clean Ubuntu 11.04 (Natty Narval) install.</span><br />
<span class="Apple-style-span" style="font-family: inherit;">NB: I usually work on the trunk branch of Speed Dreams, using git-svn, but I think the download packages should work the same.</span><br />
<span class="Apple-style-span" style="font-family: inherit;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: inherit;">So this is what I've started with:</span><br />
<br />
<ul><li><i><span class="Apple-style-span" style="font-family: inherit;">sudo apt-get install cmake libsdl1.2-dev libjpeg8-dev libxmu-dev</span></i></li>
</ul><br />
<div>then made some links:<br />
<br />
<ul><li><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libGL.so.1 /usr/lib/libGL.so</span></i></li>
<li><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libGLU.so.1 /usr/lib/libGLU.so</span></i></li>
<li><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libXi.so.6 /usr/lib/libXi.so</span></i></li>
</ul><br />
<span class="Apple-style-span" style="font-family: inherit;">(idea from <a href="http://ubuntuforums.org/showthread.php?t=831975">here</a>)</span><br />
<span class="Apple-style-span" style="font-family: inherit;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: inherit;">then downloaded and installed Plib the usual way (later I learned there is a plib-dev package in Ubuntu now...):<br />
</span><br />
<ul style="line-height: 17px;"><li style="text-align: justify;"><span class="Apple-style-span" style="font-family: inherit;">Visit the <a href="http://plib.sourceforge.net/download.html">PLib download page</a>.</span></li>
<li style="text-align: justify;"><span class="Apple-style-span" style="font-family: inherit;">Download the 1.8.5 version, then do as told: <i>tar xzf plib-1.8.5.tar.gz</i></span></li>
<li style="text-align: justify;"><i><span class="Apple-style-span" style="font-family: inherit;">cd plib-1.8.5</span></i></li>
<li style="text-align: justify;"><i><span class="Apple-style-span" style="font-family: inherit;">./configure</span></i></li>
<li style="text-align: justify;"><i><span class="Apple-style-span" style="font-family: inherit;">make</span></i></li>
<li style="text-align: justify;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo make install</span></i></li>
</ul><span class="Apple-style-span" style="line-height: 17px;"><span class="Apple-style-span" style="font-family: inherit;">and then onto adding some more dev libs:</span></span><br />
<br />
<ul><li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo apt-get install libopenal-dev libenet1-dev</span></i></span></li>
</ul><br />
<span class="Apple-style-span" style="line-height: 17px;">At this point "</span><span class="Apple-style-span" style="line-height: 17px;"><i>cmake .</i></span><span class="Apple-style-span" style="line-height: 17px;">" still wasn't happy,</span><span class="Apple-style-span" style="line-height: 17px;"> whining about some plib thingies. Quick googling led me to our <a href="https://sourceforge.net/projects/speed-dreams/forums/forum/865036/topic/4047568">own forum</a> (khm) and launching cmake in interactive mode (<i>cmake -i .</i>) I was able to set the correct location of the PLib includes.</span><br />
<span class="Apple-style-span" style="line-height: 17px;"><span class="Apple-style-span" style="font-family: inherit;">This was so satisfying that cmake agreed to complete 100%.</span></span><br />
<span class="Apple-style-span" style="line-height: 17px;"><span class="Apple-style-span" style="font-family: inherit;"><br />
</span></span><br />
<span class="Apple-style-span" style="line-height: 17px;"><span class="Apple-style-span" style="font-family: inherit;">Now in the <i>make</i> phase I quickly faced the first problem, at about 9% of compiling. It missed some libplib*.so files in the /usr/lib directory. Noproblemo, linking is our friend (every other day):</span></span><br />
<br />
<ul><li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libplibul.so.1 /usr/lib/libplibul.so</span></i></span></li>
<li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libplibsg.so.1 /usr/lib/libplibsg.so</span></i></span></li>
<li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libplibsl.so.1 /usr/lib/libplibsl.so</span></i></span></li>
<li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libplibjs.so.1 /usr/lib/libplibjs.so</span></i></span></li>
<li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libplibssg.so.1 /usr/lib/libplibssg.so</span></i></span></li>
<li><span class="Apple-style-span" style="line-height: 17px;"><i><span class="Apple-style-span" style="font-family: inherit;">sudo ln -s /usr/lib/libplibssgaux.so.1 /usr/lib/libplibssgaux.so</span></i></span></li>
</ul><br />
<span class="Apple-style-span" style="line-height: 17px;">And so it compiled at last...</span><br />
<span class="Apple-style-span" style="line-height: 17px;">Now I'm busy racing :)</span></div><div><br />
</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com5tag:blogger.com,1999:blog-1297223981709991789.post-24259748593964358672011-01-10T00:17:00.000+01:002011-01-10T00:17:27.575+01:00git <-> svnYou may guess now I like working with <a href="http://git-scm.com/">git</a>. I am always amazed how easily I can match the abilities of this software with the several, often changing needs that arise during my work or hobbies. Oh right, it cannot help in skating faster...<br />
And then there is <a href="http://subversion.tigris.org/">Subversion</a>. I should not say I hate it but I think it is a slow dinosaur, ugly, fat and slow-moving. But still, many projects use it so if you want to participate in them, you've got to follow the flow.<br />
And there comes git-svn to the rescue. It enables you to use your beloved git in a subversion-based project easily. This is how I've set up my workplace for Speed Dreams development, using git for effective feature branching, mergeing, rebasing and such git candy:<br />
<blockquote><i>mkdir sd</i></blockquote><blockquote><i>git svn init https://speed-dreams.svn.sourceforge.net/svnroot/speed-dreams/trunk</i></blockquote><blockquote><i>git svn fetch -r3096</i> (of course you can choose another SVN revision)</blockquote><blockquote><i>git svn rebase</i></blockquote>and voila you have a nice and shiney git repository that mimics the SVN repo.<br />
Anytime you want to update your repo (like doing 'svn up'), just issue<br />
<blockquote><i>git svn rebase</i></blockquote>The above process is explained in more detail <a href="http://flavio.castelli.name/howto_use_git_with_svn">here</a> (thanks, Flavio), along another entry <a href="http://www.viget.com/extend/effectively-using-git-with-subversion/">here</a>.<br />
<br />
Now onto feature branching:<br />
<br />
I quite like the <a href="http://blog.hasmanythrough.com/2008/12/18/agile-git-and-the-story-branch-pattern">Story branch pattern</a>, so basically what I do is:<br />
<br />
<blockquote>1) Find a ticket to work on in the <a href="http://sourceforge.net/apps/trac/speed-dreams">Speed Dreams Trac system</a>, let's say it is ticket #100.</blockquote><blockquote>2) <i>git co -b 100_ticket_short_title</i> this creates and switched to a new git branch that I will use for this ticket only</blockquote><blockquote>3) hack this & that</blockquote><blockquote>4) <i>git add -p</i></blockquote><blockquote>5) <i>git ci -m 'Commit message that really tells something. Re #100'</i> - so I always try to include the ticket number in the commit message, good for <a href="http://sourceforge.net/apps/trac/speed-dreams">Trac coverage</a>.</blockquote><blockquote>reiterate 3-4-5 until ticket is finished</blockquote><blockquote>6) <i>git diff --cached</i> (review all the work done)</blockquote><blockquote>7) <i>git rebase -i HEAD^8</i> (or so, view last 8 commits and squash them together if needed - this to get rid of the side effects of very frequent git commits)</blockquote>Now before committing to SVN let's make sure it won't cause any conflicts:<br />
<blockquote>8) <i>git svn fetch && git svn rebase</i> (OK maybe git svn fetch isn't needed)</blockquote>If still 'green', then commit to SVN:<br />
<blockquote>9) <i>git svn dcommit</i></blockquote>Now switch back to the master branch and update it, too:<br />
<blockquote><i>git co master</i></blockquote><blockquote><i>git svn rebase</i></blockquote>Set the ticket status fixed and delete the branch, if you like. I prefer to keep it around for some weeks in case the ticket is reopened after the initial tests, but you can get rid of it or create a new branch then - really just a question of taste.<br />
<br />
The only thing you should really take note is: you cannot do a git svn rebase if you have any uncommitted changes. Fabio's blog says he uses git stash to put away his changes, does the rebase, then does git stash apply to get his changes back. I prefer to commit my changes instead, do the rebase and then work on the usual way. Which one you choose is up to your taste - both approaches work fine.<br />
<br />
This is the real git magic - you can choose the way you work!<br />
<div><br />
</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-12329502331419590372010-10-29T11:20:00.001+02:002010-10-29T11:33:28.335+02:00Ramblings - 2010/43Remember last time I wrote that I can run <a href="http://speed-dreams.org/">Speed Dreams</a> again with decent FPS? Well, that seems to get worse now, the driver fails quite often and SD exits then. Another Linux bug, got to check the reports :(<br />
<br />
Yet I've managed to develop the robot some more. Now it can handle skill settings, so you can set it up to be hmmm 'less than perfect'. The setting affects the braking (it starts breaking for a turn earlier), accelerating (it accelerates slower) and the width of the track is uses, so it isn't so brave using the full width of the track and sometimes even more, remains on the 'safe side' of driving. Whether this skilling is consistent or not, ie when skill is lower by 10% the lap times get worse also by 10% is subject to further testing.<br />
Now I am in the process of setting up the LS-GT1 carset for the robot, the first car (the Archer R9s) is kinda ready with two fictional drivers. Check the process details <a href="https://sourceforge.net/apps/trac/speed-dreams/wiki/KiloRobot">here</a>.<br />
In the meanwhile I am trying to adapt the coding style of the whole robot codebase to match that of <a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google's advised C++ coding style</a>. While in some moments it seems to be too narrow-minded pedantric there is quite some thought in it and in the end it may help improve code quality. One of the changes was to use full path in includes, <i>#include "src/drivers/kilo2008/pit.h" </i>instead of <i>#include "pit.h"</i>. Kristof reported it caused problems when building the code but I think it is rightful to be sure the compiler uses the correct header files in situation like ours when there are several robots in the source tree with a pit header. Later Kristof said it only caused problems when using a separate build directory so not in normal cases. Another suggestion was to use <i>"using ::std::string;" </i>instead of <i>"using namespace std;"</i> so not to pollute the global namespace, something I've never ever thought of but can see the reason behind. <a href="http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py">cpplint.py</a> is a great tool helping this process (nah in reality is a nasty little !*@#**^%& but we love it, right?)<br />
<br />
Track-wise I am fighting a pitlane issue of too wide a pit lane and matching the correct texture for it. Just look at sat pictures of the St. Petersburg GP and you'll see my problem. Oh damn, I've so many track ideas... and Knockhill is next on the door.<br />
<br />
The other day I've ticked off a <a href="https://sourceforge.net/apps/trac/speed-dreams/ticket/229">ticket</a> about incorrect number of laps displayed in the board1 area that was caused by such a trivial error I didn't notice it for an hour or so... passing the address of a char array to a function, then checking it's size is snprintf, the size if not the array size but the size of the pointer hahaha (4 vs 255). Trivial but painful :)<br />
<br />
Haruna has shot a <a href="http://www.youtube.com/watch?v=Wd4Kmu--PYA">nice video</a> of the current state of <a href="http://speed-dreams.org/">Speed Dreams</a>, it is on Youtube, check it out:<br />
<div style="text-align: center;"><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/Wd4Kmu--PYA?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Wd4Kmu--PYA?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></div><br />
That's all that comes to my mind today, Halloweeeen is right here \o/Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-72523244543736360172010-10-15T13:27:00.000+02:002010-10-15T13:27:32.332+02:00Ramblings - 2010/41Whoa it has been quite some time since the last post... Long story short: I lacked computing power to run <a href="http://speed-dreams.org/">Speed Dreams</a> in an enjoyable quality, could only get 4-5 fps max! on my laptop, <a href="http://kiloandtorcs.blogspot.com/2009/05/set-for-this-year.html">detailed here</a>. Now I've updated it to the latest Ubuntu version and using the community-driven <a href="https://help.ubuntu.com/community/RadeonDriver">radeon driver</a> it is able to produce 25-30 fps in a race so I can enjoy SD again. Wohoo!<br />
<br />
Speed Dreams is nearing a 2.0 state slowly, and I can tell you the wow! factor will be high once you try it. Many a things has changed since 1.4 and you can enjoy using it very much. There are new tracks, new cars, a lot of sim engine changes, user-friendly menus etc etc.<br />
My code additions are not too many yet but still I've managed to <a href="https://sourceforge.net/apps/trac/speed-dreams/ticket/78">display the pitting driver differently</a> on the leaderboard and resolve some <a href="https://sourceforge.net/apps/trac/speed-dreams/ticket/151">track name</a> and <a href="https://sourceforge.net/apps/trac/speed-dreams/ticket/77">info issues</a> when loading a track.<br />
<br />
I've dusted off my kilo2008 robot and started adapting it to SD. You can follow its evolution <a href="https://sourceforge.net/apps/trac/speed-dreams/ticket/183">here</a>, or on a dedicated <a href="http://sourceforge.net/apps/trac/speed-dreams/wiki/KiloRobot?version=6">wiki page</a> in the SD Trac. It is now able to drive along any track quite safely following this logic: it measures how long a track is and how many degrees of turns are on the track. From these data it computes something we can call like 'curviosity', ie: curves vs length. Then it decides which setup to use for the track - slow, default or fast. Of course one can create track-specific setups, if anything like that exists in the appropriate directories then the robot will use that instead of the above procedure.<br />
I've also made it able to drive 20 cars the same time (some code stolen from Andrew...). Now I'm trying to squeeze in some code to handle skilling - so you can set one driver better than the other, or globally the user can select how strong (skilled) robot opponents he/she wants to play against.<br />
<br />
Tracks - the same state where I've left them. But that's going to change soon.<br />
<br />
Too bad the TRB Champs this year was no-go, cancelled.Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com2tag:blogger.com,1999:blog-1297223981709991789.post-15865179203090164922010-03-08T14:29:00.000+01:002010-03-08T14:29:58.338+01:00Ramblings - 2010/10<div style="text-align: justify;">Emmm I'm bit late with the "periodical" ramblings but I've been busy busy busy...</div><div style="text-align: justify;">So with <a href="http://speed-dreams.org/">Speed Dreams</a> we had a quite successful beta out, about 80k downloads from <a href="http://sourceforge.net/projects/speed-dreams/files/">sf.net</a> alone. Most of the tickets are closed or moved to the next version, so what you can download now is the version we call RC but if no serious flaws are found, it will be identical to the Release 1.4.0.</div><div style="text-align: justify;">We are already planning the <a href="http://sourceforge.net/apps/trac/speed-dreams/wiki/BigFeatureList">features for 2.0</a> - it is a huge mess now but it will take shape in the upcoming weeks. We decided to stick to a <a href="http://sourceforge.net/apps/trac/speed-dreams/wiki/ReleaseRoadmap">quite strict release policy</a> so the feature list will be freezed by the end of March, that means the 2.0 will be out when all the features we voted for are complete. Each feature will get a responsible sub-team and a leader, and we push for documentation and testing more than before. If you like SD and feel an urge for a feature, or would like to join us developing it, feel free to post your idea on the Wiki pages *now*. Be quick or be dead :)</div><div style="text-align: justify;">I'm slowly moving forward track-wise, fiddling textures quite a bit but I'm sure the tracks will be released sooner or later...</div><div style="text-align: justify;">BTW Kennet has put together a <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=209954.18332.qm@web24501.mail.ird.yahoo.com&forum_name=speed-dreams-users">nice but very difficult track</a> and sprintea86 has also <a href="http://sourceforge.net/mailarchive/forum.php?thread_name=20100213203149.28cec2eb.jaime@ignorancia.org&forum_name=torcs-users">published one</a> - this one makes me dizzy though turning turning and turning.</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-32627077746097332132010-02-18T12:46:00.000+01:002010-02-18T12:46:08.833+01:00Stuck with SVN<div style="text-align: justify;">We have a SVN server at the office and 2 project repos on it. The other day my co-worker invented he would like to see the commit message informations ordered a bit differently than previously, so in GMail we could see the rev (as subject) and the log message first, for clearer view.</div><div style="text-align: justify;">So I've made some lite changes to SVN's commit-mail.pl (I don't really like Perl but can get around in it fairly easy) but then I was stuck - I did not know how to make SVN to send out all commit message emails again.</div><div style="text-align: justify;">So I had to make a 'for' loop in Bash and invoke the post-commit script from within, several thousand times... which of course took a lot of time and also left me with bad feelings about this 'solution'. If anyone knows how to make SVN send out all the message emails again, please tell me.</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-57024450852416920272010-01-28T12:54:00.001+01:002010-01-28T12:58:12.062+01:00Ramblings - 2010/04<div style="text-align: justify;">It seems there are a lot of work to do for the <a href="http://speed-dreams.org/">Speed Dreams</a> project members, as there is so low activity on the project in the moment. There are about a dozen <a href="https://sourceforge.net/apps/trac/speed-dreams/report/3">bugs to fix</a> until we can release 1.4.0 but I don't really find one that I can fix, most of them involve graphics knowledge I lack for sure.<br />
</div><div style="text-align: justify;">So for the moment I spend my spare time doing tracks: St Petersburg, Knockhill and 2 30's-era tracks (secret secret!). I'm also preparing my robot to be included in the next version and to clean up code a bit before starting this year's <a href="http://www.berniw.org/trb/events/eventlist.php">TRB championships</a>.<br />
I've some new ideas for <a href="http://speed-dreams.org/">Speed Dreams</a> like displaying 'pit' on the leaderboard if the driver is currently in the pits, better name handling on the scrolling leaderboard and some minor fixes etc<br />
</div><div style="text-align: justify;">It is cold outside and winter sleep is so sweet :)<br />
</div><div style="text-align: justify;"><br />
</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-61473391232696786712010-01-20T14:31:00.000+01:002010-01-20T14:31:02.875+01:0010 years gone<div style="text-align: justify;">I haven't been able to boot into my good ol' Win2K lately - I've used it only for running the invoicing software for at least 4 years now. But invoices cannot wait too much, so I had to do something about it.<br />
</div><div style="text-align: justify;">The partition/opsys was listed nicely in the Grub2 menu but when choosing it I met with an ugly message:<br />
</div><blockquote>error: invalid signature</blockquote><div style="text-align: justify;">Nothing more. Not too long, right? :)<br />
</div><div style="text-align: justify;">Of course I tried googling it and have found quite some references, but most of them were pointing to <a href="http://ubuntuforums.org/showthread.php?t=1264151">this forum thread</a> of Ubuntu Forums. I've read that thoroughly and tried every tip included there, but without any luck. So I decided to install a new(er) Windows (ugghhhh) and the invoicing software.<br />
</div><div style="text-align: justify;">First I saved the MBR with<br />
</div><blockquote>dd if=/dev/sda of=/mbr.bin -bs=512 -count=1</blockquote><div style="text-align: justify;">then installed WinXP easily, then I restored the MBR using 'dd' again (read in more detail <a href="https://help.ubuntu.com/community/WindowsDualBoot#Installing Windows After Ubuntu">here</a>). All that was left was issuing<br />
</div><blockquote>grub-update</blockquote><div style="text-align: justify;">and I was ready.<br />
</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Windows 2000 - we have spent 10 years together, farewell thee...<br />
</div><div style="text-align: justify;"><br />
</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-57614735115116195212010-01-04T00:44:00.000+01:002010-01-04T00:44:30.566+01:00Ramblings - 2010/01<div style="text-align: justify;">Speed Dreams: Well our beta is out and we have reached over 11.000 downloads until now. I am quite happy with that. Eckhard re-surfaced and improved a lot of graphics, on the other hand both Andrew and Wolf-Dieter has disappeared a bit, but they have advised it beforehand.<br />
</div><div style="text-align: justify;">Holiday season made the project life a bit hectic but I suspect we will be back on path soon in January. Release is due very soon as you can see it in <a href="https://sourceforge.net/apps/trac/speed-dreams/wiki/ReleaseRoadmap">release roadmap</a>.<br />
</div><div style="text-align: justify;">BTW I've added a lot of stuff to the wiki, then Eckhard deleted the main page by mistake so it had to be rebuilt... todo: backup regularly... :)<br />
</div><div style="text-align: justify;">I've used the lazy days for some re-organization of my own project directories & files, and again was amazed how easy it is to <a href="http://www.dmo.ca/blog/20080310120403/">merge separate Git repositories into one</a>. Also found <a href="http://www.jukie.net/~bart/blog/">this blog</a> for useful hints.<br />
</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-36586438455216150342009-12-24T00:42:00.000+01:002009-12-24T00:42:25.804+01:00Ramblings - 2009/52<div style="text-align: justify;">I am always amazed by how flexible Git is. For every aspect it has a proper answer, a way to do it and those are not hacks but built-in features. Simply amazing.<br />
</div><div><div style="text-align: justify;">I've recently found an article by Ryan Tomayko about <a href="http://tomayko.com/writings/the-thing-about-git">handling tangled working copies with Git</a> - and it struck me that Ive been following this technique myself for quite some time, only difference I use git-stash often, too. Ah and <a href="http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/">another article</a>, by Ariejan de Vroom about Git patches, the most clear explanation I've seen so far.<br />
</div><br />
<div style="text-align: justify;">We have a beta out for Speed Dreams 1.4.0! Check it out <a href="http://sourceforge.net/projects/speed-dreams/files/">here</a> - it is really so heart-warming to see so many work materialize. Well there is some things to do till the final release, expected about late January or early February, but nothing really serious we know of. Of course beta testing can help any still unknown problem to appear so we are looking forward to this period.<br />
</div></div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0tag:blogger.com,1999:blog-1297223981709991789.post-63428789123344584702009-12-14T09:54:00.009+01:002009-12-14T13:11:59.408+01:00Ramblings - 2009/51<div style="text-align: justify;">I decided to write some random rambling one per week, to collect my thoughts on TORCS/SD development-related issues, like ideas, what-are-you-doings, recent happenings, milestones, any new information I've come around. I plan to name them with the week number - of course there will be weeks when I skip this so don't rely on it very heavily :)</div><div><br /></div><div style="text-align: justify;">With Speed Dreams (hosted at SourceForge.net) we use Subversion as versioning system. Now 'svn ignore' - kills me, I think it is so damn un-intuitive. However recently I've stumbled upon a blog 'BogoJoker' where Joseph Pecoraro discussed it so nice and clear that it immediately made me understand how it works (but I still think it is un-intuitive...) <a href="http://blog.bogojoker.com/2008/07/command-line-svnignore-a-file/">Here is the link</a> if you need advice.</div><div><br /></div><div style="text-align: justify;">I'm getting close to make public a new track, <a href="http://www.knockhill.com/about_us/index.php">Knockhill</a>. As usual, it would be v0.4 as there is no 3D editing done at all yet. Quite a lot to do track-wise: learn <a href="http://blender.org">Blender</a> through Salty, pretty Longday a bit, then Petit, then Knockhill. And there are lot more tracks in my head to do...</div><div><br /></div><div style="text-align: justify;"><a href="http://speed-dreams.sourceforge.net/">Speed Dreams</a> is approaching a beta release - there will be a meeting on Saturday to discuss the details. We fought a lot with track selection previews - now the game displays a preview background image and superimposes a track map over it (done by JP and Brian). Wolf-Dieter has finished a lot of Simplix setups, while Xavier added more weather-related stuff to sdl-port-branch. Haruna made sure there are no more TORCS-related textures, and JP has also polished the menu system while Brian added more code to the networking part.</div><div><br /></div><div style="text-align: justify;">I plan to merge the most recent Kilo robots into Speed Dreams' next release. Todo: make it not crash when there is no setup for a track, simple fuel strategy, prepare for timed sessions.</div>Gabor Kmetyko (aka kilo)http://www.blogger.com/profile/14153490808533492204noreply@blogger.com0