<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1893980985653488886</id><updated>2012-01-29T12:36:27.792+04:00</updated><category term='Ember'/><category term='Fedora'/><category term='GSoC'/><category term='Evil'/><category term='N900'/><title type='text'>Alexey Torkhov’s blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>38</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-501324466804085844</id><published>2010-02-10T16:44:00.001+03:00</published><updated>2010-02-10T16:47:06.158+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='N900'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>Running Fedora ARM on Nokia N900</title><content type='html'>When I’ve got mine N900, I thought, pity that it doesn’t have Fedora in it. But now, I’ve managed to run Fedora ARM port on it.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_1LXZ328nDuA/S3KUYgkrPAI/AAAAAAAAA2o/lHl_5zZQAio/s1600-h/fedora-n900.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://1.bp.blogspot.com/_1LXZ328nDuA/S3KUYgkrPAI/AAAAAAAAA2o/lHl_5zZQAio/s400/fedora-n900.jpeg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Steps were the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Rebuild kernel with FRAMEBUFFER_CONSOLE=y enabled to see console output and flash it. It is well described on &lt;a href="http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Kernel_and_Debugging_Guide/Maemo_Kernel_Guide"&gt;Maemo Kernel Guide&lt;/a&gt; and &lt;a href="http://wiki.maemo.org/User:Jebba/Kernel"&gt;Jebba’s notes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Setup &lt;a href="http://wiki.maemo.org/User:Jebba/Fedora#bootmenu"&gt;bootmenu&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Unpack &lt;a href="https://fedoraproject.org/wiki/Architectures/ARM#Getting_Started_with_the_Fedora_ARM_Port"&gt;prebuilt rootfs&lt;/a&gt; to partition on an SD card&lt;/li&gt;&lt;li&gt;Copy kernel modules to &lt;code&gt;/lib/modules&lt;/code&gt; and firmware to &lt;code&gt;/lib/firmware&lt;/code&gt; inside new system&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h2&gt;Hardware support&lt;/h2&gt;&lt;h3&gt;Watchdog&lt;/h3&gt;To prevent hardware reset by watchdog chip it needs to have chars regularly written to correspondent device. On N900’s board this is &lt;code&gt;/dev/watchdog&lt;/code&gt; and &lt;code&gt;/dev/twl4030_wdt&lt;/code&gt;. I’ve made &lt;a href="http://atorkhov.fedorapeople.org/n900_wd-1-1.noarch.rpm"&gt;simple rpm&lt;/a&gt; with config for watchdog daemon and startup script.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Wifi&lt;/h3&gt;Wifi is working “out-of-the-box”. Only script to startup it like &lt;a href="http://wiki.maemo.org/User:Jebba/Fedora#Wifi"&gt;this one&lt;/a&gt; should be prepared and put to PATH, as there is no way to type anything except english letters from console.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Touchscreen&lt;/h3&gt;&lt;code&gt;tslib&lt;/code&gt; could provide touchscreen support, but to be available in X it needs &lt;a href="http://www.pengutronix.de/software/xf86-input-tslib/index_en.html"&gt;xf86-input-tslib&lt;/a&gt; driver.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Battery&lt;/h3&gt;To have battery charging it needs to run &lt;code&gt;bme&lt;/code&gt; proprietary daemon.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But it is more useful to run Fedora system in chroot from Maemo to have familiar userspace instead of cripple busybox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-501324466804085844?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/501324466804085844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=501324466804085844' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/501324466804085844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/501324466804085844'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2010/02/running-fedora-arm-on-nokia-n900.html' title='Running Fedora ARM on Nokia N900'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1LXZ328nDuA/S3KUYgkrPAI/AAAAAAAAA2o/lHl_5zZQAio/s72-c/fedora-n900.jpeg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-3979626086127828186</id><published>2009-10-14T01:21:00.000+04:00</published><updated>2009-10-14T01:21:03.341+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='Evil'/><title type='text'>Making an evil initrd with febootstrap</title><content type='html'>Иногда, мне приходится админить известную ОС Вселенского Зла. И чтобы производить разные автоматические действия, типа разбиения диска, я сделал специальный initrd который может загрузиться по сети и сделать свою работу. Это просто благодаря утилитке &lt;a href="http://et.redhat.com/%7Erjones/febootstrap/"&gt;febootstrap&lt;/a&gt;. Хотя, мне пришлось пропатчить её чтобы она работала из-под рута — патч в &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=528687"&gt;баге 528687&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Скрипт для создания злобного initrd, который сотрёт все разделы на диске, создаст два и отформатирует первый в NTFS в конце заметки. Не запускайте его на своей машинке &gt;:)&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;Sometimes, I have a need to admin an well-known World Evil OS (Windows, yeah). And to do some unattended operations like custom disk partitioning, I've made special initrd that could be booted over network, and do the work. This was simple thanks to &lt;a href="http://et.redhat.com/%7Erjones/febootstrap/"&gt;febootstrap&lt;/a&gt; util. Though, I had to patch it to flawlessly run under root, see &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=528687"&gt;bug 528687&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Script that makes an evil initrd that erases all partitions, creates two and formats first to NTFS at the end of post. Be careful not to run it on your machine &gt;:)&lt;br /&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;LANG=C i386 febootstrap fedora-11 fedora-parted file:///home/alex/tmp/repo -i coreutils -i parted -i ntfsprogs -i upstart&lt;br /&gt;&lt;br /&gt;MAKEDEV -d fedora-parted/dev -x sd{a,b,c,d}{,1,2,3,4,5,6,7,8}&lt;br /&gt;&lt;br /&gt;febootstrap-minimize fedora-parted&lt;br /&gt;&lt;br /&gt;cat &amp;gt; fedora-parted/init &amp;lt;&amp;lt;EOF&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;/sbin/parted -s /dev/sda mklabel msdos mkpart primary ntfs 0 50% mkpart primary ext2 50% 100% set 1 boot on&lt;br /&gt;/sbin/partprobe /dev/sda&lt;br /&gt;/sbin/mkfs.ntfs /dev/sda1&lt;br /&gt;/sbin/reboot -f&lt;br /&gt;EOF&lt;br /&gt;chmod +x fedora-parted/init&lt;br /&gt;&lt;br /&gt;febootstrap-to-initramfs fedora-parted &amp;gt; initrd-parted.img&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-3979626086127828186?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/3979626086127828186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=3979626086127828186' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3979626086127828186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3979626086127828186'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/10/making-evil-initrd-with-febootstrap.html' title='Making an evil initrd with febootstrap'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-7690031780533972770</id><published>2009-09-21T16:33:00.000+04:00</published><updated>2009-09-21T16:33:41.502+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>Mounting raw and qcow2 VM disk images</title><content type='html'>Mounting a partition from raw image is pretty simple:&lt;br /&gt;&lt;pre&gt;losetup /dev/loop0 image.img&lt;br /&gt;kpartx -a /dev/loop0&lt;br /&gt;mount /dev/mapper/loop0p1 /mnt/image&lt;/pre&gt;&lt;br /&gt;If kernel parameter (as loop in compiled into Fedora’s kernel) like &lt;code&gt;loop.max_part=63&lt;/code&gt; added it is even simplier:&lt;br /&gt;&lt;pre&gt;losetup /dev/loop0 image.img&lt;br /&gt;mount /dev/loop0p1 /mnt/image&lt;/pre&gt;&lt;br /&gt;Alternative way is to specify direct offset to partition:&lt;br /&gt;&lt;pre&gt;mount image.img /mnt/image -o loop,offset=32256&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To mount qcow2 images there is (at least in F-11 qemu) very useful &lt;b&gt;qemu-nbd&lt;/b&gt; util. It shares image through kernel &lt;a href="http://en.wikipedia.org/wiki/Network_block_device"&gt;network block device&lt;/a&gt; protocol and this allows to mount it:&lt;br /&gt;&lt;pre&gt;modprobe nbd max_part=63&lt;br /&gt;qemu-nbd -c /dev/nbd0 image.img&lt;br /&gt;mount /dev/nbd0p1 /mnt/image&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If LVM is present on image it could be initialized with:&lt;br /&gt;&lt;pre&gt;vgscan&lt;br /&gt;vgchange -ay&lt;br /&gt;mount /dev/VolGroupName/LogVolName /mnt/image&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Finishing is done with (depending on how it was initalized):&lt;br /&gt;&lt;pre&gt;umount /mnt/image&lt;br /&gt;vgchange -an VolGroupName&lt;br /&gt;killall qemu-nbd&lt;br /&gt;kpartx -d /dev/loop0&lt;br /&gt;losetup -d /dev/loop0&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-7690031780533972770?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/7690031780533972770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=7690031780533972770' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7690031780533972770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7690031780533972770'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/09/mounting-raw-and-qcow2-vm-disk-images.html' title='Mounting raw and qcow2 VM disk images'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-58613915910531049</id><published>2009-07-14T01:26:00.000+04:00</published><updated>2009-07-14T01:26:44.349+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Tasks properties widget</title><content type='html'>On last week I had to spend some days on my postgraduate application. Good news here that it is ended now and I hopefully will have more time to work.&lt;br /&gt;&lt;br /&gt;Also I've committed the tasks properties widget code but it does not work properly yet. Going to fix it this week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-58613915910531049?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/58613915910531049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=58613915910531049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/58613915910531049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/58613915910531049'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/07/tasks-properties-widget.html' title='Tasks properties widget'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-783323611355774996</id><published>2009-07-07T03:49:00.000+04:00</published><updated>2009-07-07T03:49:32.024+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>No progress :/</title><content type='html'>Last week was a busy for me - I had to do some bureaucratic things to receive my diploma and apply for postgraduate course. So, was tired and did almost nothing. Anyway, I’m going to some progress on client part next week. And also, I’ve find that we deviate from original plan long time ago (tasks properties were not part of it at all), so it should be rehashed, I guess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-783323611355774996?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/783323611355774996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=783323611355774996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/783323611355774996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/783323611355774996'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/07/no-progress.html' title='No progress :/'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-645669962346069281</id><published>2009-06-30T03:52:00.000+04:00</published><updated>2009-06-30T03:53:07.615+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Adding coverage tests</title><content type='html'>I've created unit test for my new tasks property code last week. It was useful as it helped to find one problem in code with uninitialised variable. Also, I've started some code to create tasks properties widget in Ember (but didn't commit it yet).&lt;br /&gt;&lt;br /&gt;The list of things to do is left unchanged: parameters filtering on server side; Eris changes and widget on client side. I want to do some client stuff on this week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-645669962346069281?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/645669962346069281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=645669962346069281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/645669962346069281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/645669962346069281'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/06/adding-coverage-tests.html' title='Adding coverage tests'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-2668503902870021531</id><published>2009-06-23T02:59:00.000+04:00</published><updated>2009-06-23T02:59:15.552+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Task properties are doing something</title><content type='html'>On last week, Al helped me to fix the “&lt;a href="https://bugs.launchpad.net/bugs/385883"&gt;bug&lt;/a&gt;” with python script which turned to be not a bug but simple error.&lt;br /&gt;&lt;br /&gt;Also I’ve make a new world initialization script (define_world_empty.py) that creates an empty script. It helps to monitor with cycmd without being spammed with all kind of different event from entities and NPCs from default world. While it is possible create empty world with calling some functions from main define_world.py, I think that having separate script to create empty world, is useful by itself, to serve as a template.&lt;br /&gt;&lt;br /&gt;Next, Al made a prototype for some core class that would allow to change task property and I added some logic to it. So now, operation for change of task properties is successfully processed, property changed and exposed back to client.&lt;br /&gt;&lt;br /&gt;Next things to do on server side, is to implement filtering to let change only allowed properties, and on client side to make changes in Eris and create widget to select task parameters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-2668503902870021531?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/2668503902870021531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=2668503902870021531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2668503902870021531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2668503902870021531'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/06/task-properties-are-doing-something.html' title='Task properties are doing something'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-3196576973488305201</id><published>2009-06-16T03:05:00.002+04:00</published><updated>2009-06-23T02:56:31.406+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Tasks interface exploration</title><content type='html'>On this week I did some exploring on what is needed to implement tasks interface along with some learning on usage of cycmd and cypython tools.&lt;br /&gt;&lt;br /&gt;I started &lt;a href="http://wiki.worldforge.org/wiki/Cyphesis_tasks_interface"&gt;wiki page&lt;/a&gt; with specification of tasks interface.&lt;br /&gt;&lt;br /&gt;Then, I was trying to do set operation from python task script, but this run into a &lt;a href="https://bugs.launchpad.net/cyphesis/+bug/385883"&gt;bug in current python bindings&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Next, I did some exploring on client side. Added sample attribute to task class and tried to load the class in Ember. Basic code like request a class and print its attributes does the work.&lt;br /&gt;&lt;br /&gt;As I see, all task handling on client is done in Eris. So, I need to add to Eris::Task class ability to store attributes. That is adding some variables and logic to fill them in Task::updateFromAtlas().&lt;br /&gt;&lt;br /&gt;From server side, as it doesn't use Eris, something in Character use operation handler should be made. And also nasty python bindings should be fixed.&lt;br /&gt;&lt;br /&gt;That’s what I’m going to do on next week. But Al should enlighten me on what exactly should be made on server side.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-3196576973488305201?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/3196576973488305201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=3196576973488305201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3196576973488305201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3196576973488305201'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/06/tasks-interface-exploration.html' title='Tasks interface exploration'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-786489130848587313</id><published>2009-06-09T03:22:00.001+04:00</published><updated>2009-06-09T03:22:37.240+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Tasks interface discussion</title><content type='html'>Last week we started to discuss how to express user interface for tasks. To recall, we want to provide an UI for task that would allow player to select the parameters of a task and control it.&lt;br /&gt;&lt;br /&gt;We want add additional declarations for attributes that are allowed to be changed to existing declaration of task. This data then should be sent to client and used to present an interface when task started.&lt;br /&gt;&lt;br /&gt;And that’s what I’m going to do next week: try to manipulate attributes of an existing task, also write draft specification for attributes declarations in task, add some example attributes and see what should be done for it to be shown in client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-786489130848587313?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/786489130848587313/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=786489130848587313' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/786489130848587313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/786489130848587313'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/06/tasks-interface-discussion.html' title='Tasks interface discussion'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-2780012799326687362</id><published>2009-06-02T00:44:00.000+04:00</published><updated>2009-06-02T00:44:58.214+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>The Void in code space</title><content type='html'>Not much happened last week in mason game systems from. Better to say, nothing happened at all. But this is expected, as I had exams.&lt;br /&gt;&lt;br /&gt;Now, exams are over and I can get back to work on the project. Seeking forward to postponed replies on my mail on expressing interface for tasks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-2780012799326687362?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/2780012799326687362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=2780012799326687362' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2780012799326687362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2780012799326687362'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/06/void-in-code-space.html' title='The Void in code space'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-4237678749346305450</id><published>2009-05-25T17:47:00.000+04:00</published><updated>2009-05-25T17:47:10.680+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Playing with fire and rope making</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_1LXZ328nDuA/SglLJX_VceI/AAAAAAAAAwY/jjnzBzWBx1g/s1600-h/screenshot_20090509_120410.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img src="http://2.bp.blogspot.com/_1LXZ328nDuA/SglLJX_VceI/AAAAAAAAAwY/jjnzBzWBx1g/s200/screenshot_20090509_120410.jpg" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;So, GSoC officially started, and here is my first report this summer :)&lt;br /&gt;&lt;br /&gt;All development for this project is happens on ‘mason_game’ branches in mine gsoc2009/alex-cyphesis.git and main ember.git repos at &lt;a href="http://git.worldforge.org/"&gt;git.worldforge.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I started to work some weeks ago and did a few things. To learn about representations of types, entities and scripts inside Cyphesis server, I decided to change starting place in the world.&lt;br /&gt;&lt;br /&gt;One thing for improve was the behaviour of campfires. With addition of proper dynamic lighting and shadows support in Ember we got nights to be dark. And having light source become essential to move without striking against the trees or being trapped by goblins.&lt;br /&gt;&lt;br /&gt;In default world, campfire starts with fire but it soon goes out without fuel. On the contrary, if some fuel added to it, then it lasts forever because there is no feature to remove objects when they are fully burned. So, adding some fuel from the start does the trick and sheds the light on starting point place.&lt;br /&gt;&lt;br /&gt;To let players have their own light source, I put two torches that players are free to take. Currently, Ember deserve some fixes to properly show the torch when hold by character.&lt;br /&gt;&lt;br /&gt;Also, in between, some fixes were made in Ember to finally finish the shadow shader. But this really is not part of GSoC.&lt;br /&gt;&lt;br /&gt;Next thing I made is rough implementation for rope making. I read a bunch of articles on rope making and history of agriculture to get some understanding of how they were making ropes in middle ages. Basing on this, I created a &lt;a href="http://wiki.worldforge.org/wiki/Mason_Farming_Game"&gt;wiki page&lt;/a&gt; to collect info about farming in Mason. After that, added type definitions for correspondent tools and implemented simple task for making grass rope. It could be refined if that’ll be necessary.&lt;br /&gt;&lt;br /&gt;On the ongoing week, I’m not planning to code anything as I’ll have exam at the beginning on June, granting that I did some work earlier. Nevertheless, we will discuss next steps about next sawing task.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-4237678749346305450?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/4237678749346305450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=4237678749346305450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4237678749346305450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4237678749346305450'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/05/playing-with-fire-and-rope-making.html' title='Playing with fire and rope making'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1LXZ328nDuA/SglLJX_VceI/AAAAAAAAAwY/jjnzBzWBx1g/s72-c/screenshot_20090509_120410.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-3373055392750724848</id><published>2009-05-20T02:08:00.001+04:00</published><updated>2009-05-20T02:10:03.282+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>Patches for Pidgin</title><content type='html'>I’m using pidgin for all IM and chat conversations for some time and there were two things annoying me. And I made patches for them:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Pidgin does not report OS version due to some subtle &lt;a href="http://developer.pidgin.im/ticket/2264"&gt;security reasons&lt;/a&gt;. Here is the &lt;a href="http://atorkhov.fedorapeople.org/pidgin-version-redhat.patch"&gt;patch №1&lt;/a&gt; that reports current Fedora version.&lt;/li&gt;&lt;li&gt;No way to change nick completion suffix from colon to comma. Here is the &lt;a href="http://atorkhov.fedorapeople.org/pidgin-completion-comma.patch"&gt;patch №2&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-3373055392750724848?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/3373055392750724848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=3373055392750724848' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3373055392750724848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3373055392750724848'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/05/patches-for-pidgin.html' title='Patches for Pidgin'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-7139800719926831807</id><published>2009-05-07T18:33:00.000+04:00</published><updated>2009-05-07T18:33:08.718+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Accepted again!</title><content type='html'>I’ll work for WF second time this summer. Yay!&lt;br /&gt;Here is essential part of proposal.&lt;br /&gt;&lt;h3&gt;Synopsis&lt;/h3&gt;Implement game systems require to build a basic castle fortification from scratch from gathering raw materials to the completed construction.&lt;br /&gt;&lt;h3&gt;Benefits for WorldForge&lt;/h3&gt;When asked about what WF is, you cannot simply answer “It is a set of tools for making games, look what cool game they made”, because there is currently no any playable game. Completing of this will increase number of things players can do in stock Mason game. It will also act as an example tasks for world creators. And hopefully, help to increase overall number of people who do custom world creation.&lt;br /&gt;&lt;h3&gt;Deliverables&lt;br /&gt;&lt;/h3&gt;In the end, the set of tasks, tools and entity classes for cyphesis for constructing walls should be implemented. Needed core and client modifications will be made along the way.&lt;br /&gt;&lt;div&gt;&lt;h3&gt;Detailed Description&lt;/h3&gt;&lt;div&gt;Proposal is to improve and implement cyphesis tasks and necessary accompanied things for following mason techs: plants, plant-fibre, logging, rope, sawing, pioneering, palisade, scaffolding, mining, earthworks, walls, gate, and fortification.&lt;br /&gt;List taken from blueprint: &lt;a href="https://blueprints.launchpad.net/cyphesis/+spec/gs-fortification" id="jo:d" title="https://blueprints.launchpad.net/cyphesis/+spec/gs-fortification"&gt;https://blueprints.launchpad.net/cyphesis/+spec/gs-fortification&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Each tech will require a set (zero, one or several) of tasks, a set of correspondent tools to perform the tasks and a set of entity classes on which action is performed. Some, tasks, tools and classes are already present in current mason impelementation and could be reused.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Here is the list of techs, a brief description taken from blueprints and my comments about how it should work and what should be done for each tech:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;plants.&lt;/b&gt; Gather plants growing on the terrain.&lt;br /&gt;Cut action could be performed with scythe on grassy terrain now.&lt;br /&gt;An other task could be added for gathering different kind of plants suitable for making ropes, like gather reeds with knife.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;plant-fibre.&lt;/b&gt; Process the right kind of plants into plant fibres to be used as a raw material.&lt;br /&gt;Gathered plants should be cleaned, dried and somehow processed. This doesn’t require any tool, just time. Needs adding fibre class.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;rope.&lt;/b&gt; Wind plant fibre into rope.&lt;br /&gt;Here several fibres are winded into rope. Doesn’t require any tool either . Needs adding rope class.&lt;br /&gt;Cyphesis, though, does not have ability to perform an action on several entities. So, perhaps, it require an improvement to server or a workaround.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;logging.&lt;/b&gt; Gather timber by logging trees.&lt;br /&gt;Chop trees could be performed with axe on trees now.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;palisade.&lt;/b&gt; Palisade from logs.&lt;br /&gt;Lever action could be performed with pole now.&lt;br /&gt;But logs should be processed before levering so they look pretty, like the palisade around goblins camp.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;sawing.&lt;/b&gt; Take raw logs and process them into the different types of shaped timber required for construction and crafting.&lt;br /&gt;Slice action could be performed with bucksaw on logs now.&lt;br /&gt;Task for making differently shaped timber could be added.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;pioneering.&lt;/b&gt; Create rough structures using rough cut timber and ropes.&lt;br /&gt;It is good to have ability to make arbitrary wooden structures, but this proposal is not targeted at this.&lt;br /&gt;This tech could be skipped and simulated by creation predefined wooden structures or by consumption of wood when constructing walls (like Warcraft :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;scaffolding.&lt;/b&gt; Construct scaffolding from sawn timber.&lt;br /&gt;This is construction of predefined wooden structure that consume sawn timber and ropes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;mining.&lt;/b&gt; Gather rock by quarrying rocky terrain.&lt;br /&gt;This was &lt;b&gt;“quarrying”&lt;/b&gt; in blueprint, I renamed it to be more traditional.&lt;br /&gt;Cut action could be performed with pickaxe on rocky terrain now.&lt;br /&gt;It could be modified to produce rocks of different styles and sizes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;walls.&lt;/b&gt; Construct walls out of stone or wood.&lt;br /&gt;Constructs a wall section like one we already have in media:&lt;br /&gt;&lt;a href="http://amber.worldforge.org/ember/screenshots/tn/screenshot_20081030_001318.jpg.html" id="u4gt" title="http://amber.worldforge.org/ember/screenshots/tn/screenshot_20081030_001318.jpg.html"&gt;http://amber.worldforge.org/ember/screenshots/tn/screenshot_20081030_001318.jpg.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;gate.&lt;/b&gt; Construct a primitive gate from rough wood and ropes.&lt;br /&gt;Like a wall, but constructs section with gate.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;earthworks.&lt;/b&gt; Modify the terrain by digging trenches, embankments and other shapes.&lt;br /&gt;Creating new and modifing existing terrain modifiers. It could be “flatten” task that is based on Level modifier.&lt;br /&gt;Modifier for digging trenches may be implemented.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;fortification.&lt;/b&gt; Construct a fortification with stone walls and gates.&lt;br /&gt;A generic tech just head the hierarchy.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;Project Schedule&lt;br /&gt;&lt;/h3&gt;We have 12 weeks on program. Here is the approximate plan on spending that time:&lt;br /&gt;&lt;br /&gt;1. Tame the python.&lt;br /&gt;2. Analyse the tasks. Describe what exactly they should perform and document this on wiki.&lt;br /&gt;3. Add/improve simple tasks (plants, plants-fibre, rope, mining).&lt;br /&gt;4-5. Start needed cyphesis core modification or invent the workarounds.&lt;br /&gt;6. Make middle-level tasks that doesn’t require core modifications (palisade).&lt;br /&gt;7. --- Mid-term evaluations: present some working code.&lt;br /&gt;8. Finish cyphesis core modifications.&lt;br /&gt;9-10. Make tasks down in hierarchy (scaffolding, walls, gate).&lt;br /&gt;11. Make earthwork tasks, possibly expanding terrain modifiers.&lt;br /&gt;12. --- The last week is to finish the work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I was proposing something similar but vague last year: &lt;a href="http://alexeytorkhov.blogspot.com/2008/04/improving-mason-game.html"&gt;http://alexeytorkhov.blogspot.com/2008/04/improving-mason-game.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-7139800719926831807?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/7139800719926831807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=7139800719926831807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7139800719926831807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7139800719926831807'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/05/accepted-again.html' title='Accepted again!'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-2110676637573638939</id><published>2009-02-10T18:49:00.035+03:00</published><updated>2009-02-10T21:06:31.831+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>Bulk file renames</title><content type='html'>I was always using shell scripts to do mass file renamings. But now there are definitely simplier tools exist. One of them came to my knowledge recently is &lt;tt&gt;rename&lt;/tt&gt;. It is standard tool and does the most simple and common task—replace one substring with another in filenames.&lt;br /&gt;&lt;br /&gt;Second useful tool is &lt;tt&gt;convmv&lt;/tt&gt;. It not only allows to convert filenames between different encodings, but also to convert between upper and lower case.&lt;br /&gt;&lt;br /&gt;Also &lt;tt&gt;mmv&lt;/tt&gt; deserves mention. It could do replacement basing on pattern.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-2110676637573638939?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/2110676637573638939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=2110676637573638939' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2110676637573638939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2110676637573638939'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/02/bulk-file-renames.html' title='Bulk file renames'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-8550037299461077122</id><published>2009-02-09T00:18:00.002+03:00</published><updated>2009-02-09T00:30:42.080+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>RPM verify and restore capabilities</title><content type='html'>Good that RPM could verify files (&lt;tt&gt;-V&lt;/tt&gt; option) and restore permissions and owner modes (&lt;tt&gt;--setperms&lt;/tt&gt; and &lt;tt&gt;--setugids&lt;/tt&gt; keys). More here: &lt;a href="http://www.cyberciti.biz/tips/reset-rhel-centos-fedora-package-file-permission.html"&gt;How to reset the permissions of the installed rpm packages with --setperms option&lt;/a&gt;. It allow me to repair part of root filesystem with accidentally changed owner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-8550037299461077122?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/8550037299461077122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=8550037299461077122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8550037299461077122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8550037299461077122'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/02/rpm-verify-and-restore-capabilities.html' title='RPM verify and restore capabilities'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-8069754649824652964</id><published>2009-02-07T21:43:00.001+03:00</published><updated>2009-02-09T20:01:25.560+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>Typographic layout</title><content type='html'>Finally, typographic layout has &lt;a href="http://bugs.freedesktop.org/show_bug.cgi?id=14022"&gt;been included&lt;/a&gt; into xkeyboard-config release 1.5 that is available in rawhide now. It enables access to symbols like «, », ©, ≠, —, … from keyboard which is very convenient for typing web texts.&lt;br /&gt;&lt;br /&gt;Unfortunately, something makes it non-working when selecting from gnome keyboard config dialog. So, I had to add &lt;tt&gt;typo typo:2&lt;/tt&gt; to xkb_symbols from &lt;tt&gt;setxkbmap -print&lt;/tt&gt; output and put call of &lt;tt&gt;setxkbmap&lt;/tt&gt; in autostartup programs. Resulting command line is:&lt;br /&gt;&lt;pre&gt;$ setxkbmap -symbols 'pc+us+ru(typewriter):2+inet(evdev)+group(shifts_toggle)+level3(ralt_switch)+typo+typo:2'&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Yay! I have typographic symbols in both English and Russian layouts switched with AltGr.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-8069754649824652964?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/8069754649824652964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=8069754649824652964' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8069754649824652964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8069754649824652964'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/02/typographic-layout.html' title='Typographic layout'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-2669698715548930271</id><published>2009-02-06T12:55:00.048+03:00</published><updated>2009-02-09T17:52:51.822+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><title type='text'>Interpretation of old paintings</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_1LXZ328nDuA/SYwJQ0YtYfI/AAAAAAAAAr0/md3WIawj7cY/s1600-h/IMG_9792.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_1LXZ328nDuA/SYwJQ0YtYfI/AAAAAAAAAr0/md3WIawj7cY/s320/IMG_9792.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Pierre Carrière-Belleuse. La place Pigalle in Paris. 1880.&lt;/div&gt;&lt;br /&gt;I’m not frequent visitor of museums, but was recently here in Gallery of Impressionists. And it is interesting how old paintings could be interpreted.&lt;br /&gt;&lt;br /&gt;For example, this picture. It clearly looks for me as picture from some pseudo-3D isometric computer game. Really, it has broken perspective close to isometric; it has level of detail—only near people have detail faces; it has sprite-alike layout—carriages and people are moving mainly parallel street edges.&lt;br /&gt;&lt;br /&gt;Hmm… my mind is too computer-aligned. Need to go for a walk… :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-2669698715548930271?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/2669698715548930271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=2669698715548930271' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2669698715548930271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2669698715548930271'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/02/interpretation-of-old-paintings.html' title='Interpretation of old paintings'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1LXZ328nDuA/SYwJQ0YtYfI/AAAAAAAAAr0/md3WIawj7cY/s72-c/IMG_9792.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-1482515055695089213</id><published>2009-01-30T21:06:00.128+03:00</published><updated>2009-02-09T17:09:10.898+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><title type='text'>Configuring lm_sensors for Asus P5E3 motherboard</title><content type='html'>Standard configuration of lm_sensors with sensors-detect find right monitoring chip and it was showing all reasonable data except voltage, that was differing by more than 10% of nominal. And it was slightly bothering me.&lt;br /&gt;&lt;br /&gt;Finally, after reading lm_sensors &lt;a href="http://www.lm-sensors.org/wiki/AsusFormulaHacking"&gt;Asus article&lt;/a&gt;, I was able to craft right voltage sensor formulas for my Asus P5E3 motherboard that give the same values as BIOS.&lt;br /&gt;&lt;br /&gt;First, need to decompile description tables (iasl package had to be installed):&lt;br /&gt;&lt;pre&gt;# cat /proc/acpi/dsdt &amp;gt; dsdt.bin&lt;br /&gt;# iasl -d dsdt.bin&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Deciphering all ACPI magic that is written to dsdt.dsl is not very easy. I was looking for RVLT function that gives the formula for voltage:&lt;br /&gt;&lt;pre&gt;Method (RVLT, 1, NotSerialized)&lt;br /&gt;{&lt;br /&gt;    And (Arg0, 0xFFFF, Local0)&lt;br /&gt;    Store (VGET (Local0), Local1)&lt;br /&gt;    Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), Zero)),&lt;br /&gt;        Local2)&lt;br /&gt;    Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), One)),&lt;br /&gt;        Local3)&lt;br /&gt;    Store (DerefOf (Index (DerefOf (Index (VPAR, Local0)), 0x02)),&lt;br /&gt;        Local4)&lt;br /&gt;    Multiply (Local1, Add (Local2, Local3), Local5)&lt;br /&gt;    Divide (Local5, Local3, , Local5)&lt;br /&gt;    Add (Local5, Local4, Local5)&lt;br /&gt;    Return (Local5)&lt;br /&gt;}&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;Translating to normal language it does approximately the following:&lt;br /&gt;&lt;pre&gt;Local1 = VGET(Local0);&lt;br /&gt;Local2 = VPAR[Local0][0];&lt;br /&gt;Local3 = VPAR[Local0][1];&lt;br /&gt;Local4 = VPAR[Local0][2];&lt;br /&gt;return Local1 * (Local2 + Local3) / Local3 + Local4;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;To find out Local parameters for each sensors, need to look at VPAR definition:&lt;br /&gt;&lt;pre&gt;Name (VPAR, Package (0x04)&lt;br /&gt;{&lt;br /&gt;    Package (0x03)&lt;br /&gt;    {&lt;br /&gt;        Zero,&lt;br /&gt;        One,&lt;br /&gt;        Zero&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    Package (0x03)&lt;br /&gt;    {&lt;br /&gt;        0x22,&lt;br /&gt;        0x22,&lt;br /&gt;        Zero&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    Package (0x03)&lt;br /&gt;    {&lt;br /&gt;        0x14,&lt;br /&gt;        0x0A,&lt;br /&gt;        Zero&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    Package (0x03)&lt;br /&gt;    {&lt;br /&gt;        0x3C,&lt;br /&gt;        0x0A,&lt;br /&gt;        Zero&lt;br /&gt;    }&lt;br /&gt;})&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Comparing this to order of data in other places of tables (VCore, +3.3V, +12V, +5V) one can see that right coefficients for +12V is 60/10 and for +5V is 20/10.&lt;br /&gt;&lt;br /&gt;Resulting config is &lt;a href="http://atorkhov.fedorapeople.org/sensors3.conf-asus_p5e3"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-1482515055695089213?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/1482515055695089213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=1482515055695089213' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/1482515055695089213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/1482515055695089213'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/01/configuring-lmsensors-for-asus-p5e3.html' title='Configuring lm_sensors for Asus P5E3 motherboard'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-5382820425172441130</id><published>2009-01-11T19:44:00.002+03:00</published><updated>2009-01-11T19:52:55.540+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Final GSoC gift</title><content type='html'>Finally, I’ve received my t-shirt. That was complete surprise for me, as I didn’t get any FedEx tracking number. So, Summer of Code 2008 is officially end for me. 2009 starts! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-5382820425172441130?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/5382820425172441130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=5382820425172441130' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/5382820425172441130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/5382820425172441130'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2009/01/final-gsoc-gift.html' title='Final GSoC gift'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-8165859452653454982</id><published>2008-09-11T16:20:00.002+04:00</published><updated>2008-09-12T11:54:01.412+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><title type='text'>Ember 0.5.4 packages</title><content type='html'>I’ve updated &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=ember"&gt;ember&lt;/a&gt; and &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=ember-media"&gt;ember-media&lt;/a&gt; still-waiting-for-review packages to newly released 0.5.4 version. Main change since previous is that all three GSoC projects including mine are merged.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: Thanks Spot for reviewing the package! Now it is being build and will be in rawhide soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-8165859452653454982?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/8165859452653454982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=8165859452653454982' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8165859452653454982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8165859452653454982'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/09/ember-054-packages.html' title='Ember 0.5.4 packages'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-7776064680294838605</id><published>2008-08-25T10:28:00.001+04:00</published><updated>2008-08-25T10:29:11.083+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Entity creator screencast</title><content type='html'>Erik has &lt;a href="http://erikhjortsberg.blogspot.com/2008/08/summers-end.html"&gt;created&lt;/a&gt; a demo that shows current abilities of entity creator: &lt;a href="http://video.google.com/videoplay?docid=-6035347629010653215&amp;amp;hl=en"&gt;streaming&lt;/a&gt;, &lt;a href="http://amber.worldforge.org/ember/movies/ember-0.5.4/entity_creator.mp4"&gt;original&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It would be great to see it integrated and released with next version of Ember.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-7776064680294838605?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/7776064680294838605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=7776064680294838605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7776064680294838605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7776064680294838605'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/08/entity-creator-screencast.html' title='Entity creator screencast'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-8282201720456646057</id><published>2008-08-18T22:43:00.000+04:00</published><updated>2008-08-19T12:17:44.930+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>The End</title><content type='html'>Today was the last day of coding phase of GSoC, so here is the summary of what’s done through second part of the program. During this month, entity creator starting from basic tool gained the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;preview of entity that has to be created,&lt;/li&gt;&lt;li&gt;      placing of entities using mouse-to-terrain feature,&lt;/li&gt;&lt;li&gt;      more user-friendly GUI: recipe description, adapters labels, help blurb with note about usage,&lt;/li&gt;&lt;li&gt;      expanded documentation in code and on wiki page.&lt;/li&gt;&lt;/ul&gt;I think, development of entity creator shown directions of what need to be improved and refactored in Ember to ease making of authoring tools. This is things that were difficult when implementing entity preview—detached entities and initialization of them using model mapping with all things like proper scaling and rotation. Would be good be to have this as some generic reusable interface.&lt;br /&gt;&lt;br /&gt;I would like to thank Erik and all WorldForge community for help during the program and I hope we will work together in future, as there is many things to do for mature authoring tools and in Ember itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-8282201720456646057?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/8282201720456646057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=8282201720456646057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8282201720456646057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8282201720456646057'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/08/end.html' title='The End'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-4672153037261727736</id><published>2008-08-11T13:21:00.000+04:00</published><updated>2008-08-11T13:30:58.111+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Final week</title><content type='html'>On last week, I’ve made some tweaks that are improving user interface. In particular, I added help text when entering to create mode that says how to exit from it. Next, I implemented suggested “Random” list element that allows to select random list item without need of implementing some Lua function. Also added is ability to add custom text that is different from item value, i. e. you can add item “Boulder style A” with value “a”.&lt;br /&gt;&lt;br /&gt;This week is final. I will try to make real-time update of entity with new adapter values. Though without this feature entity creator is already usable—I currently tweaked UI to be consistent for the case if I’ll not find what prevents CEGUI to pass event back to my application.&lt;br /&gt;&lt;br /&gt;Also, I need to finish documentation on wiki page—there is some things that, for example, are useful when writing Lua scripts and should be documented.&lt;br /&gt;&lt;br /&gt;And two things are left in Lua scripting provider: first is handling any number of results and second is calling functions with dots in name. There is probably not much work, but they are not needed right now and I’m thinking that I’ll better would not distract from my application and leave them for the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-4672153037261727736?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/4672153037261727736/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=4672153037261727736' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4672153037261727736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4672153037261727736'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/08/final-week.html' title='Final week'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-4466306699305536846</id><published>2008-08-04T12:28:00.000+04:00</published><updated>2008-08-04T13:03:20.630+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Polishing user interface</title><content type='html'>On last week I’ve made a lot of fixes that are improving user interface much. First, this is correct preview of entity. And also a bunch of smaller things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      Labels for adapters,&lt;/li&gt;&lt;li&gt;Staying in “create” mode after creating first entity,&lt;/li&gt;&lt;li&gt;Rotation of an entity with mouse wheel,&lt;/li&gt;&lt;li&gt;Fixing a bug when switching recipes.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Also, I tried make to preview (and entity that is to be created) reflect changes of adapter values in real time. I wrote a code that should do the task. It uses standard signal of an adapter. That signal should be emitted on text change event from CEGUI, but that event is never called and therefore signal is not emitted. I don’t know well what can I do with this, but I’ll try to debug it or find alternative way to get that event.&lt;br /&gt;&lt;br /&gt;Next two weeks are final. I’ve left only a few tasks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Real-time update of entity with new adapter values,&lt;/li&gt;&lt;li&gt;      Add “random” element for drop-down lists and handle it programmatically,&lt;/li&gt;&lt;li&gt;      Small tweaks in user interface,&lt;/li&gt;&lt;li&gt;      Improving wiki page with documentation,&lt;/li&gt;&lt;li&gt;      Make Lua scripting provider handle any number of results.&lt;/li&gt;&lt;/ul&gt;This probably will left some time to do some other small things. Anything that would not be finished could go to todo, ideas or wishlists.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-4466306699305536846?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/4466306699305536846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=4466306699305536846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4466306699305536846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4466306699305536846'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/08/polishing-user-interface.html' title='Polishing user interface'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-4545956719724173910</id><published>2008-07-28T16:31:00.000+04:00</published><updated>2008-07-28T16:32:18.920+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Working with model mapping</title><content type='html'>I’ve started to work with model mapping framework on last week. It  required to reimplement or copy a bunch of methods from  EmberPhysicalEntity and satellite classes. It didn’t satify me well and  I made an attempt to reuse EmberPhysicalEntity directly but it wasn’t  very successful. I’m thinking that it in some places assumes entity  properly belong to entity hierarchy. Making it to support detached  entity seems to require some changes there. So I decided to drop this  attempt and continue to work with model mapping directly to render  preview mesh correctly. And that’s what I’m going to do for next week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-4545956719724173910?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/4545956719724173910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=4545956719724173910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4545956719724173910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4545956719724173910'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/07/working-with-model-mapping.html' title='Working with model mapping'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-8711682223245192272</id><published>2008-07-21T16:56:00.000+04:00</published><updated>2008-07-21T16:57:34.193+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Entity positioning</title><content type='html'>On last week I’ve made terrain positioning of new entities. It allows to see position where entity will be created. But the preview mesh isn’t the same as entity that will be created.&lt;br /&gt;&lt;br /&gt;This is the goal for next week—make preview fully represent new entity. To achieve this, I need to implement Erik’s plan on DetachedEntity class and feeding it to model mapping framework. This is partially done but not commited yet.&lt;br /&gt;&lt;br /&gt;Also, user interface should be improved—it should stay in “create” mode after creating first entity and allow create fast as many more entities as user wants. Also minor things like changing orientation on mouse scroll should be made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-8711682223245192272?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/8711682223245192272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=8711682223245192272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8711682223245192272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/8711682223245192272'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/07/entity-positioning.html' title='Entity positioning'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-3541551220019891040</id><published>2008-07-14T18:59:00.000+04:00</published><updated>2008-07-14T19:12:05.831+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>More OGRE bits</title><content type='html'>&lt;div style="float: left; width: 123px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_1LXZ328nDuA/SHkAg7TnPHI/AAAAAAAAAIE/QkCmmUkot_g/s1600-h/screenshot_20080710_135013.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 113px; height: 85px;" src="http://bp1.blogger.com/_1LXZ328nDuA/SHkAg7TnPHI/AAAAAAAAAIE/QkCmmUkot_g/s200/screenshot_20080710_135013.jpg" alt="" id="BLOGGER_PHOTO_ID_5222205808588569714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="padding: 4px;font-size:85%;" &gt;Performing ritual&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Last week I spend looking and learning on what should be done during the second part of program.&lt;br /&gt;&lt;br /&gt;The main feature that should be implemented is easy entity positioning. This means that while moving mouse over terrain it should show preview of entity that will be created. Positioning of entity with mouse was recently implemented by Sean and Erik. So I need to implement showing imaginary preview or bounding box in the world. This carried me in deeply in Ember internals. I’m guessing that this task could simply be solved with some OGRE bits and intercepting some controls but I didn’t find my way to it yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-3541551220019891040?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/3541551220019891040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=3541551220019891040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3541551220019891040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3541551220019891040'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/07/more-ogre-bits.html' title='More OGRE bits'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_1LXZ328nDuA/SHkAg7TnPHI/AAAAAAAAAIE/QkCmmUkot_g/s72-c/screenshot_20080710_135013.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-1175116623873132806</id><published>2008-07-07T12:57:00.009+04:00</published><updated>2008-07-12T23:46:18.350+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>It’s working!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_1LXZ328nDuA/SHjdQ7i7SaI/AAAAAAAAAHc/QYdaHvpJMHg/s1600-h/screenshot_20080705_001328.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 113px; height: 86px;" src="http://bp0.blogger.com/_1LXZ328nDuA/SHjdQ7i7SaI/AAAAAAAAAHc/QYdaHvpJMHg/s200/screenshot_20080705_001328.jpg" alt="" id="BLOGGER_PHOTO_ID_5222167050867919266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;On last week I’ve finally made my program work! Thus finishing goal for first part of program just in time. As there comes a time for midterm survey, I’ll make a summary of what has been ﻿already done.&lt;br /&gt;&lt;br /&gt;So, at the moment we have a program that can do following basic things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;parse entity recipes,&lt;/li&gt;&lt;li&gt;show widget,&lt;/li&gt;&lt;li&gt;show GUI adapters from entity recipe on its widget,&lt;/li&gt;&lt;li&gt;pass adapters values to Lua function that is specified in entity recipe,&lt;/li&gt;&lt;li&gt;compose entity replacing placeholders in entity specification with values received from Lua function or from adapter directly,&lt;/li&gt;&lt;li&gt;send entity to server.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;﻿Regarding on what to do next, it needs at least:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;improving GUI—like adding title to adapters, etc.,&lt;/li&gt;&lt;li&gt;adding preview of new entity,&lt;/li&gt;&lt;li&gt;using mouse-to-terrain ﻿feature to place entities and&lt;/li&gt;&lt;li&gt;improve current code and features.&lt;/li&gt;&lt;/ul&gt;This should be discussed and corrected after some kind of review of what’s done.&lt;br /&gt;&lt;br /&gt;And one more organizational point. I’m going move to the country since next weekdays. Quality of Internet connection there is not good, so, probably, most of time I’ll not be available on IRC/Jabber. Though, I hope, will read email regularly.&lt;br /&gt;And very good that we are using Git—I can commit regardless of connectivity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-1175116623873132806?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/1175116623873132806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=1175116623873132806' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/1175116623873132806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/1175116623873132806'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/07/its-working.html' title='It’s working!'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_1LXZ328nDuA/SHjdQ7i7SaI/AAAAAAAAAHc/QYdaHvpJMHg/s72-c/screenshot_20080705_001328.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-5206425610916710217</id><published>2008-06-30T15:27:00.000+04:00</published><updated>2008-07-12T19:12:14.126+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Gluing altogether</title><content type='html'>On last week I started to glue all different parts together. That is: wrap current adapters in my class GUIAdapter until (if ever) AdapterBase API would be changed to be more friendly, binding GUIAdapterBindings to adapters and XML element. Also parser for adapter bindings and entity recipe placeholders were written. With placeholders, I forgot at start that entity recipe is semi-atlas because of placeholders and cannot be stored as Atlas element, so this was need to be changed too.&lt;br /&gt;&lt;br /&gt;This week I’ll continue to glue all this pieces to make it do some real work. And also general things like error handling over my code need to be improved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-5206425610916710217?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/5206425610916710217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=5206425610916710217' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/5206425610916710217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/5206425610916710217'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/06/gluing-altogether.html' title='Gluing altogether'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-7028081127851441468</id><published>2008-06-25T14:18:00.004+04:00</published><updated>2008-07-13T00:27:12.102+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><title type='text'>Ember RPM package for Fedora</title><content type='html'>Submitted &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=ember"&gt;Ember RPM package&lt;/a&gt; for review to Fedora. Also, libwfut package is propagated to mirrors and now available in Rawhide.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-7028081127851441468?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/7028081127851441468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=7028081127851441468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7028081127851441468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7028081127851441468'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/06/ember-rpm-package-for-fedora.html' title='Ember RPM package for Fedora'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-3049556768103853124</id><published>2008-06-23T19:09:00.002+04:00</published><updated>2008-07-12T19:12:14.127+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Improving adapters API</title><content type='html'>I was ill since middle of last week (cold or something like that). Now  it’s better but perfect :(&lt;br /&gt;&lt;br /&gt;Anyway, I did something on my project, not much though.&lt;br /&gt;I stopped with improving adapters API—I need a function that would create adapter just by its type name. With previous implementation, EntityEditor used some internal functions/methods to achieve this. Unfortunately, it seems impossible to convert them to some general interface.&lt;br /&gt;&lt;br /&gt;So, I’m added this function to API. But there other problem rises: when creating adapter, atlas message object need to be passed to constructor. Value of this message is used then to populate adapter GUI element for first time and seems nothing like that. But, this element value has to be carefully crafted and be valid for this adapter type. For example, if it is number adapter then it should have number type, if it is 2D-position than it must be list with two number sub-elements, etc.&lt;br /&gt;EntityEditor contains functions for creating all these element types. It is good functions and could be useful in some cases. But in overall, I see this approach as non-scalable—it is hard to add new adapter type.&lt;br /&gt;So, my proposal is to let adapters handle elements of type NONE as some  kind of default value.&lt;br /&gt;&lt;br /&gt;Also, in some small time slices I was looking into packaging ember for fedora. When doing that, I find some license issues with ember and other libs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-3049556768103853124?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/3049556768103853124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=3049556768103853124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3049556768103853124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3049556768103853124'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/06/improving-adapters-api.html' title='Improving adapters API'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-4230823878742674758</id><published>2008-06-16T16:11:00.000+04:00</published><updated>2008-07-12T19:12:14.127+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Tweaking entity creator widget</title><content type='html'>At this weekend I was tweaking entity creator widget.&lt;br /&gt;&lt;br /&gt;I added lists of all recipes to it. When clicking at recipe it creates adapters for it (with static text yet).&lt;br /&gt;&lt;br /&gt;I was starting to do it with lua, but find that bindings for some STL classes are not exist and decided to move code that uses it into C++ helper function. I’m going to try to create this bindings eventually as coding this things with lua when proper bindings exist is somewhat easier and faster.&lt;br /&gt;&lt;br /&gt;I have also some tasks left: fix lua call context, fix atlas bindings and merge new admin widget into my branch. But I decided to postpone and spend time working on widget. I like it, because of “visial” results available.&lt;br /&gt;&lt;br /&gt;So, primary task for this week to do is to populate widget with real (not static) adapters. And on next week, I hope, it’ll be possible to bind values from adapters with entity attributes and create entity :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-4230823878742674758?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/4230823878742674758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=4230823878742674758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4230823878742674758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/4230823878742674758'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/06/tweaking-entity-creator-widget.html' title='Tweaking entity creator widget'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-2648059806280992500</id><published>2008-06-09T17:22:00.003+04:00</published><updated>2008-07-12T19:19:33.410+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Lua call context API is usable</title><content type='html'>During last week I was working on Lua call context API. This work in not finished yet because it still has bugs—some cases are not properly processed for example, when error happens during the call, also, notation that is currently used to convert value to object is not very beautiful:&lt;br /&gt;&lt;code&gt;returnValue.asObject&amp;lt;atlas::message::element&amp;gt;("Atlas::Message::Element")&lt;/code&gt;&lt;br /&gt;it needs to be reworked.&lt;br /&gt;&lt;br /&gt;Anyway, it’s now quite usable for my task. I’ve made an example code that uses it and gets an Atlas::Element from Lua. But here is new problem appear—tolua bindings are not very well handle overloaded functions, so Atlas bindings should be tuned.&lt;br /&gt;&lt;br /&gt;Concerning my future plans, I need to design structure of an application, API of its classes. I also find components/ogre/widgets/adapters and need to change my existing classes according them.&lt;br /&gt;&lt;br /&gt;I’m unsure how this structure should be organized, but want to start implementing GUI part and adding necessary functions to API along the way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-2648059806280992500?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/2648059806280992500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=2648059806280992500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2648059806280992500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2648059806280992500'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/06/lua-call-context-api-is-usable.html' title='Lua call context API is usable'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-330641268661340890</id><published>2008-06-02T21:08:00.000+04:00</published><updated>2008-07-12T19:12:14.128+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Working on Lua call interface</title><content type='html'>At last weekend I started to look at lua scripting part of my application but “suddenly” find that ember scripting support lacks of ability to get return values from lua calls. Then Erik kindly made an scripting call context interface—it’ll be possible to get return value with it. So, my plan for next days is to clean up and bring it to state where it could be used for my task.&lt;br /&gt;&lt;br /&gt;And task itself is stays the same—make a draft for lua scripting in my  application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-330641268661340890?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/330641268661340890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=330641268661340890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/330641268661340890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/330641268661340890'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/06/working-on-lua-call-interface.html' title='Working on Lua call interface'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-1174654956951112371</id><published>2008-05-27T14:03:00.003+04:00</published><updated>2008-07-12T20:37:35.528+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Coding starts</title><content type='html'>As I forgot make weekly reports during last month, here is my report of what’s done up to time.&lt;br /&gt;&lt;br /&gt;First, I have a working development platform. I learned how to use git. And have needed libraries installed and working—CEGUI was updated to 0.6.0 in fedora repos by my request. And I’m also asking to include libwfut there. This would allow to include ember also. Probabily, I’ll have to become maintainer of those in order to it happen.&lt;br /&gt;&lt;br /&gt;Regarding what’s done in scope of program. I’ve learned somewhat to work with CEGUI, OGRE and Atlas in things that are primarily needed for the project. Also created the skeleton application that doesn’t do much of real work yet but suitable for extending right now.&lt;br /&gt;&lt;br /&gt;About my time. Last three weeks I had tests and exams. But starting next month I’ll have less dense schedule and will devote more time to project.&lt;br /&gt;&lt;br /&gt;On this week I’ll have spare time closer to weekends. I have a choice do work on either widget or scripting part. I think that is better to start with lower scripting part. It is, populate adapters with some stub values and then call a Lua function that will return an Atlas object from which entity is could be created.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-1174654956951112371?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/1174654956951112371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=1174654956951112371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/1174654956951112371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/1174654956951112371'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/05/coding-starts.html' title='Coding starts'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-2189470489672117753</id><published>2008-04-26T16:08:00.000+04:00</published><updated>2008-07-12T21:29:30.263+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ember'/><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Started wiki page</title><content type='html'>Started page to write generic project documentation: &lt;a href="http://wiki.worldforge.org/wiki/Ember_Entity_Creator"&gt;http://wiki.worldforge.org/wiki/Ember_Entity_Creator&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-2189470489672117753?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/2189470489672117753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=2189470489672117753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2189470489672117753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/2189470489672117753'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/04/started-wiki-page.html' title='Started wiki page'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-7296434338318177541</id><published>2008-04-25T20:20:00.000+04:00</published><updated>2008-07-12T20:37:18.132+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Improving Mason game</title><content type='html'>Here is very first variant of proposal that was changed to entity creator because of lack of mentor resources at that moment.&lt;br /&gt;&lt;br /&gt;1. Add new simple tasks with proper gui that represent core things that player can do: open/close box, get/put items to the container, put one thing on another, push/pull, etc. This step will require to consider what tasks could could be done without physics engine and to think what more tasks will be useful.&lt;br /&gt;2. Add more “construction” tasks: shape tree log, connect them together (with nails or just simply put one on another)... Here, if not available in Atlas, format of efficient storing and transmission (if house contains 12000 nails, than we probably shouldn't send them all to client) of composed objects with connection to finite number of existing 3D-models should be invented. At first, existing proposals like &lt;a href="http://worldforgedev.org/archives/126"&gt;“Tiling models”&lt;/a&gt; in WF, and mechanisms of OGRE should be worked on.&lt;br /&gt;3. Improve interaction with NPCs. Currently, in WorldForge, NPCs are very user-unfriendly. At least, in client some shop-interface should be done and on server their logic should be improved.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-7296434338318177541?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/7296434338318177541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=7296434338318177541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7296434338318177541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/7296434338318177541'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/04/improving-mason-game.html' title='Improving Mason game'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1893980985653488886.post-3559729974685366921</id><published>2008-04-22T14:59:00.003+04:00</published><updated>2008-07-13T01:09:10.745+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GSoC'/><title type='text'>Accepted!</title><content type='html'>Yay! Accepted! Posting here proposal of entity creator. It wasn’t so big from start—I’ve made many additions and corrections to it during application period.&lt;br /&gt;&lt;br /&gt;I’m proposing to implement advanced entity creator in Ember client. It will consist of script functionality in entities and GUI that could be connected to properties and parameters. It will allow world authors to easier creation of new entities.&lt;br /&gt;First part is script bindings. It introduce hooks (placeholders like $hook) to entity definition that are replaced with script output. It can be single (literal) value or atlas-tree represented by a lua object.&lt;br /&gt;Second, it is an editor widget that has bindings between GUI adapters and script parameters controlled with a specific config. Also config defines bindings of script output to hooks or other scripts. Script input will also include whole entity atlas-tree.&lt;br /&gt;&lt;br /&gt;To show how I envision its work, here is use cases:&lt;br /&gt;1. Creation of single items (entities without minds). Some items can have many attributes and these attributes could have linked values (ex. mass/size/density) and some attributes are technical and could be set to constant or random values. For these objects proposed application will reduce overall number of properties that world author have to fill while creating.&lt;br /&gt;2. Creation of NPC. Script can help to fill main part of mind (ex. to what neighbour NPC know). It can help to fill it's inventory. This will let author to concentrate on primary content – what NPC should do.&lt;br /&gt;3. Creation of child objects at once with the parent. Examples: creating house with all contained objects, filling NPC inventory. First edition of editor would allow to create fixed set of contained objects returned from script. World editor that would allow to edit many objects at once with undo feature is out of scope of this program, I think.&lt;br /&gt;4. Bringing variety to the game world. Some games (like Planeshift) have unpleasant look because they have completely identical objects like houses, people, items, etc. In current implementation it is possible to show or hide parts depending on parameters (like in mushroom model). Or may be some future feature will allow to vary texture/model.&lt;br /&gt;Randomizing script could be added to parameters that are responsible for look of entity. This will add variety of created entities and save time for creating the world.&lt;br /&gt;One more example is variation of contained objects when creating a house. This could be helpful when creating a village, for example.&lt;br /&gt;5. Creation of big number almost identical entities. Currently it is possible to do it only with writing a python script. But with this tool it will be probably a bit easier. It can randomly distribute objects’ position, size and any other attributes. Example could be planting dark forest or making orcs army. As in 3&lt;sup&gt;rd&lt;/sup&gt; use case, it would allow to create only some scripted set of objects.&lt;br /&gt;6. Enhanced GUI adapters. Entity Editor could include some adapters that are not just simple controls. It could be, for example, tool that selects point on map or (if server would allow) drawing panel.&lt;br /&gt;&lt;br /&gt;In all this cases proposed tool is letting world authors to concentrate on creation, not technical details of it. Also implementing it will open the way to other authoring tools, like advanced entity editor and also it could be extended to be a user tool in cases where user is allowed to create new object or edit somehow existing one.&lt;br /&gt;&lt;br /&gt;Approximated plan of work:&lt;br /&gt;Each step is supposed to take about a week. I’m planning to start some work before May 26.&lt;br /&gt;0-1. Learn the problem in depth. Study needed internals. Probably, code some concepts. Decide on format of semi-atlas specification. Decide on format of binding between properties and adapters/scripts. Document these in wiki.&lt;br /&gt;2-3. Make parser of semi-atlas specification and bindings (reuse existing code). Make script bindings. At first, make only inserting of simple values as properties in place of hooks. Second, start to making insertion of whole objects/xml tree.&lt;br /&gt;3-4. Make advanced entity creation widget. Start to making preview. Look how to do pointer-to-terrain ray tracing.&lt;br /&gt;5. Make all this work together and fixing bugs…&lt;br /&gt;6. --- Mid-term evaluations: present some working code.&lt;br /&gt;7. Enhance scripting possibilities. Finish insertion of whole objects. Next, implement library of useful functions that could be used in scripts.&lt;br /&gt;8-9. Make more advanced controls available as GUI adapters. Make pointer-to-terrain ray tracing. Make easy position of new entity and in-place preview.&lt;br /&gt;10. Improve overall usability of entity creator. Fix bugs.&lt;br /&gt;11. Make some real entities/models with scripts as examples.&lt;br /&gt;12. --- The last week is to finish the work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1893980985653488886-3559729974685366921?l=alexeytorkhov.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeytorkhov.blogspot.com/feeds/3559729974685366921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1893980985653488886&amp;postID=3559729974685366921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3559729974685366921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1893980985653488886/posts/default/3559729974685366921'/><link rel='alternate' type='text/html' href='http://alexeytorkhov.blogspot.com/2008/04/accepted.html' title='Accepted!'/><author><name>Alexey Torkhov</name><uri>http://www.blogger.com/profile/11513573296166139122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
