tag:blogger.com,1999:blog-27956636643082992252024-03-05T12:42:54.541-08:00KDELaszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.comBlogger29125tag:blogger.com,1999:blog-2795663664308299225.post-11727917483262563452015-05-27T10:53:00.002-07:002015-05-27T10:55:08.048-07:00Free Learning Forever Campaign<blockquote class="tr_bq">
Press Release<br />
<br />
Every day Packt Publishing is giving away books for free to help teach new tech skills.<br />
<br />
From 30th April, 2015 Packt Publishing has thrown open the virtual doors of its new Free Learning <br />
<br />
Library and offering its customers a daily chance to grab a fresh free eBook from its website. The publisher is encouraging people to learn new skills and try out new technologies and so every day it will be offering a different eBook from its huge list of titles free for anyone to download.<br />
<br />
The Free Learning Library will be open all year-round but each title will only be up for 24 hours, so make sure you keep checking back to get your hands on the latest book! Packt has well over 2000 titles published and the range of topics that could potentially feature is huge. From AngularJS to Zabbix, there's going to be something to appeal to everyone - this is a great opportunity to try out a different technology or a new technique.<br />
<br />
All you'll have to do is simply click on the day’s free eBook and it will instantly be added to your account. <br />
<br />
New customers are also encouraged to take advantage, with the offer being a brilliant chance to try out <br />
<br />
Packt's great range of books and products – all that’s required is a Packt account.</blockquote>
Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-25889099722457436282015-05-06T07:07:00.000-07:002015-05-06T07:07:02.184-07:00 Packt Publishing offering about DRM-free contentPackt running a campaign to
support 'Day Against DRM':<br />
<br />
<blockquote class="tr_bq">
<span style="color: black; font-size: 13pt;">W<span style="background-color: white; display: inline!important; float: none; font-family: Ubuntu,sans-serif; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 22.6520004272461px; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">e believe
that you should be able to read and interact with your content
when you want, where you want, and how you want – and to that
end we've been advocates of DRM-free content since our very
first eBook was published back in 2004.</span></span></blockquote>
<div style="color: black; font-family: arial,helvetica,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
<br />
Packt Publishing is offering all its DRM-free content like ebooks
& videos at $10 for 24 hours only on May 6th. Please find the
link here : <a href="http://bit.ly/1clU3YZ" target="_blank">bit.ly/1clU3YZ</a></div>
<div style="color: black; font-family: arial,helvetica,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
</div>
<div style="color: black; font-family: arial,helvetica,sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px;">
Packt celebrates International Day Against DRM, May 6th 2015 <br /><br />Packt Publishing firmly believes that you should be able to read and interact with <br /><br />your content when you want, where you want, and how you want – to that end they <br /><br />have been advocates of DRM-free content since their very first eBook was published <br /><br />back in 2004. <br /><br />This year, to demonstrate their continuing support for Day Against DRM, Packt is <br /><br />offering all its DRM-free content at $10 for 24 hours only on May 6th – with more than <br /><br />3000 eBooks and 100 Videos available across the publisher’s website <br /><br />www.packtpub.com, there’s plenty to discover, whatever you’re interested in. <br /><br />“Our top priority at Packt has always been to meet the evolving needs of developers <br /><br />in the most practical way possible, while at the same time protecting the hard work of <br /><br />our authors. DRM-free content continues to be instrumental in making that happen, <br /><br />providing the flexibility and freedom that is essential for an efficient and enhanced <br /><br />learning experience. That’s why we’ve been DRM-free from the beginning – we’ll <br /><br />never put limits on the innovation of our users.” <br /><br />– Dave Maclean, CEO<br /><br />Advocates of Day Against DRM are invited to spread the word and celebrate on May <br /><br />6th by exploring the full range of DRM-free content at www.packtpub.com - all eBooks <br /><br />and Videos will be $10 for 24 hours, including the latest hot titles.</div>
Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-33834698076143619662015-02-19T08:19:00.000-08:002015-02-19T08:19:06.881-08:00Wonderful opportunity to grab some free and nice books
<style type="text/css">p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: left; widows: 2; orphans: 2; }a:link { color: rgb(0, 0, 255); }</style>
<br />
<div style="line-height: 115%; margin-bottom: 0.14in;">
<span style="color: #f79646;"><span style="font-size: medium;"><b>Press
Release</b></span></span></div>
<div style="line-height: 115%; margin-bottom: 0.14in;">
<span style="font-size: medium;"><b>Packt
Publishing Encourages Customers to Learn New Skills with 18 Days of
Free Learning
<img align="bottom" border="0" height="213" name="Picture 1" src="data:image/png;base64,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" width="627" /></b></span></div>
<div style="line-height: 115%; margin-bottom: 0.14in;">
Packt Publishing
is encouraging customers to develop new skills and try new
technologies with 18 days of Free Learning. Beginning on Monday 16<sup>th</sup>
February, the publisher is inviting customers to claim a free eBook
every day to learn a new skill and to get to know the wide range of
technologies and subjects that can be found across their extensive
library of titles.
</div>
<div style="line-height: 115%; margin-bottom: 0.14in;">
Each eBook will
only be available for free for 24 hours – so make sure you visit
Packt’s website every day from the 16<sup>th</sup> February to
March 5<sup>th</sup> to grab your daily Free Learning fix. With such
a wide range of topics tipped to potentially feature – from Drupal
to Learning Play, Magento to Moodle, Selenium to OpenLayers, Maya
Programming to Linux Shell Scripting, Redmine to BackTrack - be sure
to take this opportunity to try something new.</div>
<div style="line-height: 115%; margin-bottom: 0.14in;">
All customers
have to do is simply click on the day’s free eBook and it will
instantly be added to their account. New customers are also
encouraged to take advantage, with the offer being a great
opportunity to get to know Packt a little better – all that’s
required is a Packt account.</div>
<div style="line-height: 115%; margin-bottom: 0.14in;">
Find out more:
<<a href="http://bit.ly/1ECubjf">bit.ly/1ECubjf</a> ></div>
<div style="line-height: 115%; margin-bottom: 0.14in;">
#freelearning</div>
Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-6551627411500794672015-01-18T00:17:00.001-08:002015-01-18T05:13:20.365-08:00CMetronomeGeek and nerd musicians do not need GUI, do they? You can obtain the release from <a href="http://download.kde.org/unstable/cmetronome/0.1.0/src/cmetronome-0.1.0.tar.xz">here</a>. It is already <a href="https://aur.archlinux.org/packages/cmetronome/">available in AUR</a> for Archlinux. It requires the pulseaudio sound server. It does <b>not</b> depend on any of Qt, just C++. Do not forget about voting in AUR if you like the software. ;-)Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-85775281919675634712013-10-04T19:34:00.001-07:002013-10-04T19:34:26.619-07:00Release: cutepaste<div>
You can obtain the release from <a href="http://download.kde.org/unstable/cutepaste/0.1.0/src/cutepaste-0.1.0.tar.xz">here</a>. It is already <a href="https://aur.archlinux.org/packages/?O=0&K=cutepaste">available in AUR</a> for Archlinux (do not forget to vote if you like ;).</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik4jGOySthbiwMUGyvZR87BPZxacJBcX_vzgEJaNEey9M58I-jjWAlwGJrvGqVVeI-B9qXGHnwGVc920tERhchWluYCylx8njWBMavcqeNZuMo8MZcsuPPMbTeXGsnZad8LRErIN8Prw0/s1600/cutepaste-3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik4jGOySthbiwMUGyvZR87BPZxacJBcX_vzgEJaNEey9M58I-jjWAlwGJrvGqVVeI-B9qXGHnwGVc920tERhchWluYCylx8njWBMavcqeNZuMo8MZcsuPPMbTeXGsnZad8LRErIN8Prw0/s640/cutepaste-3.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Cutepaste in action</i></td></tr>
</tbody></table>
<div>
<div>
<br /></div>
<div>
Thanks go to Sayak for providing this service!</div>
<div>
<br /></div>
<div>
<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEWwRloko73EP9IJIg8sz_2hSqxqUfkeuWTzXT5C1ngeYi1mwCNKtkn1NQPu4CdrY8NnLQDdNlHEJyw6nuUuE1aST22UqlQO8M3B5h78WIWYR5GbirEMT0jCiTEB_kMoMyggxVLQxNIf0/s1600/cutepaste-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEWwRloko73EP9IJIg8sz_2hSqxqUfkeuWTzXT5C1ngeYi1mwCNKtkn1NQPu4CdrY8NnLQDdNlHEJyw6nuUuE1aST22UqlQO8M3B5h78WIWYR5GbirEMT0jCiTEB_kMoMyggxVLQxNIf0/s640/cutepaste-2.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>KDE Paste web client</i></td></tr>
</tbody></table>
</div>
</div>
Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com7tag:blogger.com,1999:blog-2795663664308299225.post-64273511942502704102013-07-24T22:39:00.001-07:002013-07-25T12:26:30.125-07:00Yocto: mature or not?This is a bit of fun spoiling post, but sometimes we need to become constructively critical in order to improve the situation. As you may already know, Yocto has been advertised as the relatively new technology for creating custom distributions for you. Although, people commonly use <a href="http://www.pokylinux.org/">Poky</a>, <a href="http://arago-project.org/wiki/index.php/Main_Page">Arago</a>, and so forth ready-made distributions on top of <a href="http://www.blogger.com/www.openembedded.org/%E2%80%8E">Open Embedded</a>.<br />
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0QaszuN528cpCPnqFXdHlBD9MUMoGFooNvkksuf6653vw99LPI7-bhtg22MRA2t4MNdkOc6hUdgFQhUj-9PEpiZqWYeN41h03d_Fl2IwisDIkxpm9h9x0YjvcuuRPrzux-BdB46hJsSM/s1600/yocto-project-compatible.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0QaszuN528cpCPnqFXdHlBD9MUMoGFooNvkksuf6653vw99LPI7-bhtg22MRA2t4MNdkOc6hUdgFQhUj-9PEpiZqWYeN41h03d_Fl2IwisDIkxpm9h9x0YjvcuuRPrzux-BdB46hJsSM/s320/yocto-project-compatible.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Yocto Project</i></td></tr>
</tbody></table>
<div>
<br /></div>
<h4>
Cross-compilation</h4>
<div>
<br /></div>
<div>
So, <a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=4899">here</a> is the critical issue for embedded developers using the cross-toolchain provided by Code Sourcery why I personally think that Yocto might not be usable for the moment for commercial projects where reliability is a main concern.</div>
<div>
<br /></div>
<div>
In short: it does not work if you would like to build the distribution (for instance stock Poky) for your embedded board, like ARM with the sourcery toolchain.</div>
<div>
<br /></div>
<div>
What makes me worry a bit more, this cross-toolchain environment was working in the first half of 2012 yielding some regression in here. That opens up new concerns about QA, right? It is fundamentally broken and can be reproduced easily as acknowledged in the bug report above, yet the changes got in.</div>
<div>
<br /></div>
<div>
One could suggest to revert back to the very old and unsupported version. Well, it is unsupported first of all, so you cannot reliable base a commercial product on top of it. More importantly, that version has a lot more issues. I have tried to back port fixes to that release from master, but I have not had so much fun. I experienced many merge conflicts and so forth.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdGC8XpxA03dFhhFD2bgg1YkzbOaEOVQYVutdPDNN8nuQl6LlX_ikV7ZYbGuenYUijrKhpGi67CUFMYerKxf3SZbJf9YIzIzLeWl20KIY0vze0BmPMpDpKz8SaIcZzDHou2PdUp3Cxm0Q/s1600/cross-compile.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="136" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdGC8XpxA03dFhhFD2bgg1YkzbOaEOVQYVutdPDNN8nuQl6LlX_ikV7ZYbGuenYUijrKhpGi67CUFMYerKxf3SZbJf9YIzIzLeWl20KIY0vze0BmPMpDpKz8SaIcZzDHou2PdUp3Cxm0Q/s320/cross-compile.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Cross compilation</i></td></tr>
</tbody></table>
<div>
<br /></div>
<h4>
Unsupported Archlinux</h4>
<div>
It is a bit disappointing that such a common distribution as Arch is not supported. Please do not write me that they do not enough manpower. I fully understand and appreciate that. Yet, it means Archlinux developers are in trouble.<br />
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsWmd5LC5pRg9jNpeA6At_ev2RftTJCDle3Mx-XNZHEtD8W_sPWsylvIZUx_jHKFsG_S3sXtIfYUssO3IEqfRANIq9FsGL2WUxK_NZuztdWLvN8PbJNjcPNRynQMvI2wit7LtzpggGh18/s1600/arch+linux+black.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsWmd5LC5pRg9jNpeA6At_ev2RftTJCDle3Mx-XNZHEtD8W_sPWsylvIZUx_jHKFsG_S3sXtIfYUssO3IEqfRANIq9FsGL2WUxK_NZuztdWLvN8PbJNjcPNRynQMvI2wit7LtzpggGh18/s320/arch+linux+black.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Archlinux</i></td></tr>
</tbody></table>
<br /></div>
<div>
<br /></div>
<h3>
Unsupported releases</h3>
<div>
They, kinda, support two releases back. They have a time based release cycle. One new release comes in every half a year. This brings us to the point that they only support your selected software version up to maximum one year. That is not so comfortable when you need a reliable product. I just faced the issue yesterday that there are fixes in old release branches, but no one has cared to release them for more than half a year. They will probably not be released either. I am now referring to the denzil version coming from April in 2012. So, it is not quite like the Linux kernel or Ubuntu LTS.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUJXjM1-7YNpabgw0w61bWIPGSMySY-R1LRpSiBWAeoMNfwdCXFrCFHzS4GTcoe5WC_HsCLgpI67Ef3AW_AmreIrrmiF82-sD67Mw9sRRX-m3_fvG1Yw_9C8aouyGMmzNESSHSL00PAAY/s1600/long-time-support.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUJXjM1-7YNpabgw0w61bWIPGSMySY-R1LRpSiBWAeoMNfwdCXFrCFHzS4GTcoe5WC_HsCLgpI67Ef3AW_AmreIrrmiF82-sD67Mw9sRRX-m3_fvG1Yw_9C8aouyGMmzNESSHSL00PAAY/s1600/long-time-support.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Long Term Support (LTS)</i></td></tr>
</tbody></table>
<div>
<h3>
Error reporting</h3>
</div>
<div>
I think this is also a hard sell in Yocto as of now. There are issues that I could not simply figure out on my own as a newcomer without quite a bit of time with analyzing, especially when the public documentation is not up to the task either. There are several issues which made me spend a few days just to understand them, and that what is going on underneath.</div>
<div>
<br /></div>
<div>
The first bogus error reporting is about bblayers.conf file mismatch based on the generated file and the sample available. It was even hard for others to provide some help on IRC who have been experienced with the project. <a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=4903">Here</a> you can read the details about it.<br />
<br />
Then, there is the issue of mismatching cross-compilation toolchain and MACHINE configuration. In my case, I would like to use the arm gnueabi toolchain from gcc for my omap board, particularly for the arm core. All fine, the external sourcery toolchain is setup, but the default config file generated for the build comes with "qemux86". When you try to generate the distribution, you will get weird toolchain issues about x86. I have been surprised because I explicitly specified the toolchain what to build with. Having spent 1-2 days with trying to understand the situation, it boils down to that the default MACHINE config generated, screwed this up. It would have been so much easier if it is reported up front with a warning that the toolchain and machine configurations are mismatching. <a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=4901">Here</a> you can find the bugreport about that one.<br />
<br />
There are more to it, albeit the last, but not least I would like to mention here is the one when you get tab/space issues when migrating from an older poky version, or you just get those for some reason. Reporting those issues should be easy, shouldn't it? Theoretically yes, but in practice, all you will get a file having issues tab and space issues. I did not quite get the point what the issue is after checking the offending file for quite a while. It turned out that the real problem is in the include file which it was requiring. Again, a newbie would spend a lot of time with it without external and professional support. I would even go further than reporting the right file as in: it would be nice to get a report for the location as close as possible. That is, a function name, perhaps a list of offending line numbers, and so forth. <a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=4901">Here</a> you can find the relevant bugreport for this.<br />
<br />
Please note that, I have been told for some of these that it is not an easy fix as the parser design is not prepared for such use cases. It unfortunately means, it is not just about adding a minor feature, but basically revamping the parser.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB01vSceoA4HHltB16eIfEMtE4zHAmzUhSViRM8jIln7RhIsGzYzYjkZWo2KTfEEeTyosvDFcgfCQMK7YUh-t5Fcoxj7gaYVcmD4UY1pknS9o_Pz4yFQ_W4bakdgmn4iQJMQ-80xGfCYs/s1600/error-reporting.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB01vSceoA4HHltB16eIfEMtE4zHAmzUhSViRM8jIln7RhIsGzYzYjkZWo2KTfEEeTyosvDFcgfCQMK7YUh-t5Fcoxj7gaYVcmD4UY1pknS9o_Pz4yFQ_W4bakdgmn4iQJMQ-80xGfCYs/s320/error-reporting.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Error messages</i></td></tr>
</tbody></table>
<br />
<h3>
Documentation</h3>
</div>
<div>
There are some issues here as well I hit. I had a DISTRO_FEATURE entry "--disable-zlib" that I inherited. I was looking into it, but I have not seen anything like that in the reference manual. I guessed respestively that, it is not a proper syntax, so I can remove it. Right, you would imagine it could be as simply as that?</div>
<div>
<br /></div>
<div>
The problem is that, yes, theoretically, but in practice: I have seen other undocumented DISTRO_FEATURES like "opengl". I opened up a <a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=4906">bugreport</a> for that, but the problem is that, once you find a feature not documented, how will you know what to do with another not represented. Is that a mistake, undocumented, or what exactly? :)<br />
<br />
I would not like to bore the reader, so I will only give one more example in here. I have been told that external toolchains should work, yet, it is not documented in the released documentation properly. Even in the development version of the next generation documentation, it is a bit of sloppy. You get the documentation of 2-3 variables, but you do not have any concrete example at hand. Then, I have been told to use the meta-toolchain/sourcery layer. As for the latter, I do not even find any documentation that could be useful for me on github from Mentor Graphics. I created a <a href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=4907">bugreport</a> for that one, too.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYs4V_S6Hpo0k1CLNTUlVKwSwpwq-uIAmrYxKZVULVm10ktF6MfRcbVIIWyg1qejkRhMdTSNYNiIhZaUojvSDyDZoYTlTLAu-Xy-nQX6WbzKASn0rsqIcZzqn7fP6jNFsFRS-gM-SX5mw/s1600/doc_documentation_200w.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYs4V_S6Hpo0k1CLNTUlVKwSwpwq-uIAmrYxKZVULVm10ktF6MfRcbVIIWyg1qejkRhMdTSNYNiIhZaUojvSDyDZoYTlTLAu-Xy-nQX6WbzKASn0rsqIcZzqn7fP6jNFsFRS-gM-SX5mw/s1600/doc_documentation_200w.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Dr. Documentation</i></td></tr>
</tbody></table>
<br /></div>
<h3>
Conclusion</h3>
<div>
I am objectively pessimistic with the current state as an Arch user who is looking for a reliable product in an embedded environment with cross-compilation. I have spent a couple of days to experiment with all this, and I just wanted to let you the limitations so that you do not need to go through the same issues. Oh, and please do not write that "It works for me" because yes, I heard people using git master or not even that with supported distributions, and very simple setups where cross-toolchain is not necessary, et cetera. I am now referring to Arch, embedded, and so forth scenarios. I of course appreciate the Yocto people's work a lot, and I hope they can put more effort into this project to address those issues in the, hopefully near, future.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgen6Mt1STwqBOWGohe8UWYRfHxvjUEUEniQ_bVx7ypsZqufALAJiJXsNPPLCtl5EQl4DzaX5L3DmUvQfDjFAFbWMJfXhTro1s9O_ZYP9ssLXpVgUtlWrsg7gFkFFresez1quRp_iHlBTA/s1600/Conclusion.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgen6Mt1STwqBOWGohe8UWYRfHxvjUEUEniQ_bVx7ypsZqufALAJiJXsNPPLCtl5EQl4DzaX5L3DmUvQfDjFAFbWMJfXhTro1s9O_ZYP9ssLXpVgUtlWrsg7gFkFFresez1quRp_iHlBTA/s320/Conclusion.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Conclusion</i></td></tr>
</tbody></table>
<div>
<br /></div>
Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com7tag:blogger.com,1999:blog-2795663664308299225.post-5526399909620765842013-07-20T08:00:00.002-07:002013-07-20T08:13:33.907-07:00aKademy mola (i.e. rocks)Back in the UK!<br />
<br />
While having a short discussion with David Edmundson at the Stansted airport in London, we realized that this has been one of the best annual KDE summits we attended to. We made a note that the organization team always kept us busy with awesome social programs.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-DYPcvXnIlXbgzrAQ_lB1jj4qR_li7JK8W1SJgzzVfZ-pZBoxnxlrNo_uI0-ztlf7uTjz5tKpPfhNLYIRHOogghpDRD9_iR7sLq3g_2fDXVe4VyV5qyC_V-W5xomIhUkgJkpVY84CdWE/s1600/akademy-3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-DYPcvXnIlXbgzrAQ_lB1jj4qR_li7JK8W1SJgzzVfZ-pZBoxnxlrNo_uI0-ztlf7uTjz5tKpPfhNLYIRHOogghpDRD9_iR7sLq3g_2fDXVe4VyV5qyC_V-W5xomIhUkgJkpVY84CdWE/s320/akademy-3.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;">One of those funny pictures</td></tr>
</tbody></table>
<br />
I think Milian summarizes it in <a href="http://milianw.de/blog/akademy-2013-a-blast">his blog post</a> well: "<span style="background-color: #d6d7d8; color: #374153; font-family: 'Liberation Sans', 'Bitstream Vera Sans', sans-serif; font-size: 12px; text-align: justify;">The reason why I didn’t write a single blog post in between is just that I never had a spare minute for that.</span><span style="background-color: #d6d7d8; color: #374153; font-family: 'Liberation Sans', 'Bitstream Vera Sans', sans-serif; font-size: 12px; text-align: justify;"> "</span><br />
<br />
Many thanks go to the sponsors, organizers and participants who made this vacation in Spain an unforgettable success. ;-)<br />
<br />
<a href="http://community.kde.org/Akademy/2013/Photos">Photos</a>, <a href="http://community.kde.org/Akademy/2013/Blogs">blog posts</a> and other information can be found on the <a href="http://akademy2013.kde.org/">official web page</a>.Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-86336760754450105372013-07-19T02:46:00.001-07:002013-07-19T02:46:21.577-07:00C++ and built-in range support for switch cases?Worth adding? Details here: <a href="https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/HZZ_t8abzU4">https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/HZZ_t8abzU4</a>Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-43418413025472263392013-07-16T14:37:00.001-07:002013-07-16T14:37:36.473-07:00C++ and compile-time guaranteed pointer safety?<div>
Personally, I would find this feature useful, but I am not a C++ expert by any means. ;-)</div>
<div>
<br /></div>
<div>
Do you think this would be a useful feature to add to the TR, and then later the standard after C++14? Let me know if you have any alternative suggestions within the currently available or already planned feature set to address this issue.</div>
<div>
<br /></div>
<div>
Oh, and if you do not know what this all means, here you can find the explanation of a good reference design: <a href="http://static.rust-lang.org/doc/tutorial.html#borrowed-pointers">http://static.rust-lang.org/doc/tutorial.html#borrowed-pointers</a></div>
Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com8tag:blogger.com,1999:blog-2795663664308299225.post-13904785569724648532013-07-14T14:45:00.003-07:002013-07-14T14:45:43.683-07:00C++ and header filesJust got into a conversation with my dear room mate, Ivan, here in Bilbao at aKademy about this.<br />
<br />
<span style="background-color: white; color: #262626; font-family: arial, sans-serif; font-size: 13px; line-height: 16px;">My personal opinion seems to have leaned towards preferring to not have to write them myself. Rather, I am happy to have them generated by a util, for instance during the build process.</span><br style="background-color: white; color: #262626; font-family: arial, sans-serif; font-size: 13px; line-height: 16px;" /><br style="background-color: white; color: #262626; font-family: arial, sans-serif; font-size: 13px; line-height: 16px;" /><span style="background-color: white; color: #262626; font-family: arial, sans-serif; font-size: 13px; line-height: 16px;">A real life example could be rustdoc, most probably. I also realize that it is a bit of an unrealistic wish at the moment, but as I am on vacation now I am entitled to dream a lot. ;-)</span>Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com4tag:blogger.com,1999:blog-2795663664308299225.post-35613018995261693722013-03-08T02:26:00.002-08:002013-03-08T02:27:56.296-08:00Mobile hotspot connection on LinuxHi,<br />
<br />
I always wanted to write a short blog post about connecting to a mobile hotspot like joikuspot on my N9 phone. The application uses ad-hoc mode, but it can be easily adapted to managed mode like on the Blackberry DevAlpha, Z10 and Q10 devices. Just replace the "ad-hoc" mode with "managed". Unfortunately, joikuspot does not support wpa and wpa2, so this command will be primarily useful for wep. If you leave the key option out, it is also useful for open (i.e. brief sanity checks, et cetera).<br />
<br />
Here you can find a reference command which works fine across distributions and even without GUI:<br />
<br />
<b>iwconfig wlan0 mode ad-hoc essid Test key s:TestTestTests && dhclient wlan0</b><br />
<br />
It is admittedly not a big thing. However, I lost this command several times in the past. Now, I would know what to do by heart, but what about this in half a year or later? :)<br />
<br />
Also, netcfg and similar distribution specific utils kept being broken for some reason. This was always the fallback for me which worked off-hand. Hope it helps. :-)<br />
<br />
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-66757339430393584442013-02-14T01:24:00.000-08:002013-07-23T12:11:48.708-07:00QtSerialPort in Qt 5.1Hi everyone,<br />
<br />
I would like to introduce you to a project I have been working on lately under the Qt Project umbrella. Hope, you find it useful. :) <br />
<br />
<h3>
</h3>
<h3>
History</h3>
<h3>
</h3>
The serial port technology is quite old, but still in active use today. It is mostly used for communicating with modems, sending control commands and so forth where the universal serial bus is not necessary. I am sure many of you recall the time when soldering the pins and cable manually to get it right for the embedded boards. :-)<br />
<br />
About a year ago, I was looking for a library for my project to handle the serial port communication with the modems I needed. As I had been about to make a touch friendly UI with QML, I thought it would have been nice to have a Qt solution. It would have been phantastic to communicate with the modem on my Windows, or Linux host.<br />
<br />
There has been an old library around for a while, called <a href="http://code.google.com/p/qextserialport/">QExtSerialPort</a>. Unfortunately, its API looked weird and the project had been abandoned for a while without people contributing to it. Then, a chinese person began to fix certain issues, but still: the design had been carried for long from the old ages.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjFxIQLEJxWb1zq7uPlVu9zZyx70ByfW60Lu3PRGbxk3yVzLjkuFzKsDvhswaMButPeI09U8WTtErJ0DtnH26kv1rzbuwuzViIygntAMqQgBowZqot2bKBPAderJqV5amiS3Arf0yIO44/s1600/serialAssembly.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjFxIQLEJxWb1zq7uPlVu9zZyx70ByfW60Lu3PRGbxk3yVzLjkuFzKsDvhswaMButPeI09U8WTtErJ0DtnH26kv1rzbuwuzViIygntAMqQgBowZqot2bKBPAderJqV5amiS3Arf0yIO44/s400/serialAssembly.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Serial Port Cable</i></td></tr>
</tbody></table>
<br />
<br />
<h3>
<b>Qt Project Playground </b></h3>
<br />
The Qt Project established a nice opportunity for contributors to start a new project, or move an existing to the Playground area. There was a <a href="http://lists.qt-project.org/pipermail/development/2011-December/000778.html">discussion</a> on the development mailing list to figure out the rules for handling this. Around the time, when I requested the <a href="http://lists.qt-project.org/pipermail/development/2011-December/000865.html">QtAudio3D project</a> into the Playground area of the Qt Project, there was a russian person, Denis, who initiated a <a href="http://lists.qt-project.org/pipermail/development/2011-December/000702.html">community project</a> into Playground in his own pastime to make a great developer experience for serial port based projects across platforms.<br />
<br />
The library was supporting only Qt5 back then, and my project was based on Qt4. This is understandable as Qt5 was not realeased for the time, so we were unable to take the risks of the moving target. I decided to give the project a go and make support for Qt4. Not much later (i.e. 1-2 weeks), I got the first changes into the Qt Project, following the Gerrit workflow. By that time, it was more or less possible to use QtSerialPort with Qt4.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9hG3m3_4KiyREXtp45zsg3Cy9MMwVxwMYuxmTOpf8dTjr5M8kM8JmTkOXKCD60ZM2StOS5DctGigfFFxAES5yi1QZYm0ePtIdYZBuAfS_Q7j7gzODWoK1Bn3EBpmYuXOZpxxDYfFREI/s1600/gerrit-qtserialport.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC9hG3m3_4KiyREXtp45zsg3Cy9MMwVxwMYuxmTOpf8dTjr5M8kM8JmTkOXKCD60ZM2StOS5DctGigfFFxAES5yi1QZYm0ePtIdYZBuAfS_Q7j7gzODWoK1Bn3EBpmYuXOZpxxDYfFREI/s400/gerrit-qtserialport.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Gerrit - Code Review Tool</i></td></tr>
</tbody></table>
<br />
Our work has been achieved by using the <a href="https://codereview.qt-project.org/">Qt instance</a>
of the awesome Gerrit codereview tool. Almost every commit got at
least one review, but many times two, or sometimes even more. I think
that is nice, and helped to guarantee the quality of the work even without
having a Continous Integration (CI) in place for the time. <br />
<br />
<br />
As time time had flied, I had more and more feature requests and own changes for those to implement. That is how the library kept rolling, getting new features and bugfixes. The API was also a bit too low-level, and I began to send patchs to refactor the API to be more Qt style'ish. As I am a geek, I instantly wrote a command line based example to enumerate the devices. It was necessary for me to get the project tested on my pandaboard where the UI was not available. There were also important features added like support for gadget serial driver on Linux and so forth.<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW9EKaBvlt_7Pm6yPqQFbTCczhc7EBAYZf5-5Sfi_703oYYmjsmGhL-pSpvLrHOgxcS11xKvUeFv_2bPo0jiWYnBXihbtHxSKQfFaiDQpxu4GCCGey0Zp7JpDeAKftA4ZHtb6zbK8DySg/s1600/cenumerator-example.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW9EKaBvlt_7Pm6yPqQFbTCczhc7EBAYZf5-5Sfi_703oYYmjsmGhL-pSpvLrHOgxcS11xKvUeFv_2bPo0jiWYnBXihbtHxSKQfFaiDQpxu4GCCGey0Zp7JpDeAKftA4ZHtb6zbK8DySg/s400/cenumerator-example.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>The command line enumerator example</i></td></tr>
</tbody></table>
<br />
The initial plan was to make QtSerialPort available as an add-on module for Qt 5.0. This had been <a href="http://lists.qt-project.org/pipermail/development/2012-July/005340.html">proposed</a> on the development mailing list last year. You can read the platforms and environment supported in that threa. Unfortunately, the Qt Project did not have enough capacity for this integration. Likely, it was also good for us because we were able to clean up the remaining uncertain bits of the API. I am not claiming it is now perfect, but it looks much better than it used to be. :-)<br />
<br />
<h3>
<b>Future plans</b></h3>
<h3>
<b> </b></h3>
As you can read in the topic of this post, QtSerialPort makes it for Qt 5.1. This has been <a href="http://lists.qt-project.org/pipermail/development/2013-January/009520.html">approved</a> by Lars, the Qt Project Chief Maintainer, in the aforementioned thread. This is a really great and exciting news for us. It is also a very good prove for the Qt Project that the idea actually works. Community people can contribute with new modules under the same umbrella with the companies behind the Qt Project.<br />
<br />
The main short term plan is to get the integration right in terms of Jira and Gerrit to move out of the Playground scope.<b> </b>As the CI integration has happened lately, the project is now also covered for build tests, so we cannot end up in situations like having regressions as before. It is not so simple to maintain such a project like this without proper CI integration because we experienced many regressions on one platform when we tried to fix issues or add new features.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFhChz2MpDMpf2upDeLIJYw8OEWloLBdKGtHes8vLDi-S2ThDhLFQfz9SWPRuUDKIAVpHwPDLpMA6mtce9sbAajJVi-AhJNBD9an0XV6sxXGTfK-uWLqdH56yCqGiVJtb-30y-WVo-C7g/s1600/usb-serial.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFhChz2MpDMpf2upDeLIJYw8OEWloLBdKGtHes8vLDi-S2ThDhLFQfz9SWPRuUDKIAVpHwPDLpMA6mtce9sbAajJVi-AhJNBD9an0XV6sxXGTfK-uWLqdH56yCqGiVJtb-30y-WVo-C7g/s400/usb-serial.jpeg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>FTDI USB-Serial adapter</i></td></tr>
</tbody></table>
<br />
<br />
As you may already know, it is not simple to test the serial port projects automatically. There had been an initiation for a <a href="http://lists.qt-project.org/pipermail/development/2012-April/003437.html">Qt Mock</a> project from me last April, but it did not yet manage to reach any progress. Nevertheless, we are working on making tests available as much as possible.<br />
<br />
My personal plan is to write a KDE frontend for the library, preferrably also a terminal emulator. We already have a terminal emulator example in place to represent the developer and user experience for the project. It is not full-fledged, but it has been working nice for the basic needs. You can set the baudrate, parity and stop bits, flow control et cetera. Something like that would be nice in the KDE project, or perhaps even a plasmoid. There has been a CuteCom around for a while, but when I briefly discussed the project with Alexander Neundorf last summer at <a href="http://akademy2012.kde.org/">aKademy</a> in Tallin, it did not support all the platforms we need.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3HOyZ7w6mPUd6P5Gkvp-vraH1ZZ5FxPGaxpoeIehzQBeznyWl1js3cOi1Qtn2NZFlA232GZ2dJmK2i4mtXnZjwoXTRcpes4x3Jx6cG8TMbPsPVf7WdI53tc1lLDczx43Bv4GO1XPNUOg/s1600/terminal-example.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3HOyZ7w6mPUd6P5Gkvp-vraH1ZZ5FxPGaxpoeIehzQBeznyWl1js3cOi1Qtn2NZFlA232GZ2dJmK2i4mtXnZjwoXTRcpes4x3Jx6cG8TMbPsPVf7WdI53tc1lLDczx43Bv4GO1XPNUOg/s320/terminal-example.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Terminal example</i></td></tr>
</tbody></table>
<br />
<br />
As you may already know, the QNX platform is also getting closer to a Tier 1 stage in the Qt Project. Blackberry, formerly known as Research In Motion, and KDAB made an excellent job in that area. I have been considering to add a QNX backend support for the project at some point.<br />
<br />
<h3>
Kudos</h3>
<h3>
</h3>
First of all, many thanks to the Qt Project!<br />
<br />
Secondly, many thanks to all the contributors to QtSerialPort!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpCkJJWtn8Q-BDfqUwllU-2yXukL4jjHbmVIZ6dqwy6YgYV7_2pfHbWX6sNlNc_tyVMfE1NRneiZmwe5pudlEJ763KLmG5gp_sqZ4ANfSTCAK2eOIUu9uQ8uVFlvjpKzJi89fGvgvyffg/s1600/qtserialport-authors3.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpCkJJWtn8Q-BDfqUwllU-2yXukL4jjHbmVIZ6dqwy6YgYV7_2pfHbWX6sNlNc_tyVMfE1NRneiZmwe5pudlEJ763KLmG5gp_sqZ4ANfSTCAK2eOIUu9uQ8uVFlvjpKzJi89fGvgvyffg/s400/qtserialport-authors3.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Authors</i></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
The reviewer statistic is generated by the following command: <span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.727272033691406px;">git log --grep '^ *Reviewed-by:' | sed -n 's/^ *Reviewed-by: *//p' | sed 's/ *<.*>//' | sort | uniq -c -i | sort -n -r</span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE1kBDNrrxmBbWn25GRLYMx9yaTXwOf_NaoYewrT8hLZBP9LfenPhRehnG6HCXiypmpmUPpt7D3P8kGWlnwIE8bI_FKf7IwHoMZ8wx_-ytFkYP5gmLM_iwa4AkfpwkCrAaNZQIzLAWf_g/s1600/qtserialport-reviewers4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE1kBDNrrxmBbWn25GRLYMx9yaTXwOf_NaoYewrT8hLZBP9LfenPhRehnG6HCXiypmpmUPpt7D3P8kGWlnwIE8bI_FKf7IwHoMZ8wx_-ytFkYP5gmLM_iwa4AkfpwkCrAaNZQIzLAWf_g/s400/qtserialport-reviewers4.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Reviewers</i></td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<br />
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com6tag:blogger.com,1999:blog-2795663664308299225.post-73878687603926017962013-02-10T07:26:00.001-08:002013-02-10T08:04:00.977-08:00Geek'ish application development for Blackberry 10Hi there again,<br />
<br />
<br />
As indicated in <a href="http://lpapp.blogspot.ie/2013/02/new-applications-for-blackberry-10.html">my previous post</a>, I am now about to summarize my developer experience for the platform Blackberry 10. As written before, the regular way of developing applications for this platform is to use the Momentics IDE or QtCreator.<br />
<br />
Those environment usually generate the necessary qmake build system files, bar files for you to a certain extent I guess. Admittedly, I have never used them for this purpose, so this is just a gut feeling. Anyway, this is not so important for the scope of this post.<br />
<br />
<br />
<h3>
<b>Goal</b></h3>
<br />
<br />
When I had started to develop my first application, I made some research if it had ben possible to develop applications the way I like: <i>command line</i> and <i>cmake</i>. For those of you, who are not familiar with cmake, it is a nice cross-platform Makefile generator thoroughly used in many projects. One open source reference is KDE for this.<br />
<br />
Interestingly enough, I got some messages in private after my cmake based projects that people found those files and used in a similar fashion one by one. This is nice, but some explanation is necessary for newcomers. So, let us dig into more details about this.<br />
<br />
<br />
<h3>
<b>CMake Toolchain file</b></h3>
<br />
<br />
In order to make cross-platform development with cmake, usually one has to produce a <a href="http://www.vtk.org/Wiki/CMake_Cross_Compiling">correct toolchain file</a>. I looked around on the internet, and there was some examples available for QNX. I took one of those essentially to start off with. That is also one reason why it is a bit bloated, and a much simpler would be enough for achieving what we wish to.<br />
<br />
If you are not interested in the underlying operation, you can skip the explanation below, and you can just use <a href="https://projects.kde.org/projects/playground/mobile/wiki-reader/repository/revisions/master/entry/frontends/blackberry/cmake/Toolchain-QNX-8.0.0.cmake">my toolchain file</a> right away.<br />
<br />
The important changes I made were the followings:<br />
<br />
<br />
<ul>
<li><i>Use the proper toolchain binary</i></li>
</ul>
<br />
Use the 'qcc' build wrapper. It is essentially a wrapper around the compiler, linker, and so forth. You can find more complete documentation about it <a href="http://developer.blackberry.com/native/reference/bb10/com.qnx.doc.neutrino.utilities/topic/q/qcc.html">here</a>.<br />
<br />
This is a very important change because I started with the "ntoarmv7-g++" which is a link to the "arm-unknown-nto-qnx8.0.0eabi-g++-4.6.3" toolchain file. I also tried the latter directly, but I encountered crash for my applications even for a very simple test case without cmake. The program crashed even before entering the main function. It took me two nights at least to track the problem down.<br />
<br />
<br />
<ul>
<li><i>Use the proper toolchain binary flags</i></li>
</ul>
<br />
Once I figured out I would have to use 'qcc', there were still some problems that I encountered, albeit slightly different. I had to realize the usage of certain flags is necessary. Once I made it work with the proper flags without any build system, I had to figure out the proper way of setting that for the toolchain file. Now, we have all the information necessary so here it goes the statement:<br />
<br />
<table class="filecontent syntaxhl"><tbody>
<tr><th class="line-num" id="L79"> <span style="font-weight: normal;"><i>-> SET(CMAKE_CXX_COMPILER_ARG1 "-Vgcc_ntoarmv7le -lang-c++)</i><i></i></span></th></tr>
</tbody></table>
<table class="filecontent syntaxhl"><tbody>
<tr><th class="line-num" id="L79"></th><td class="line-code"></td></tr>
</tbody></table>
<ul>
<li><i>Instruct cmake to use the toolchain file created </i></li>
</ul>
<br />
<table class="filecontent syntaxhl"><tbody></tbody></table>
-> <i>-DCMAKE_TOOLCHAIN_FILE=/path/to/the/toolchain/file.cmake</i><br />
<br />
<br />
<ul>
<li><i>The location of the toolchain file</i> </li>
</ul>
<table class="filecontent syntaxhl"><tbody></tbody></table>
This is only my personal opinion, but I found it simpler to put the toolchain file into the project because then I did not have to carry that on to other machines I worked on. It is also simpler to ask other non-cmake developers to test my application if I pass a command to them.<b> </b>It is not a huge file, so it probably does not take up much space in the repository either. It does not clutter the project that much either in my opinion.<br />
<table class="filecontent syntaxhl"><tbody></tbody></table>
<table class="filecontent syntaxhl"><tbody></tbody></table>
<table class="filecontent syntaxhl"><tbody>
<tr><th class="line-num" id="L72"><br /></th><td class="line-code"><br />
So this is the entire command I use from the build folder:<br />
<br />
-> <i>cmake -DCMAKE_TOOLCHAIN_FILE="../frontends/blackberry/cmake/Toolchain-QNX-8.0.0.cmake" .. && make VERBOSE =1 </i></td></tr>
</tbody></table>
<table class="filecontent syntaxhl"><tbody>
<tr><th class="line-num" id="L72"><br />
<br /></th></tr>
</tbody></table>
<h3>
<b>Find modules for Cascades libraries</b></h3>
<br />
This is also a very important step to find the Cascades libraries for your application. This was not a big deal, albeit I have not had time to solve this issue nicely either. So, there are rooms for improvements. :)<br />
<b> </b><br />
<br />
I have created separate cmake find modules for each library for the time being, but perhaps it should be handled more like Qt4 with a joint find module, and one can request anything out of that. So, there would be a macro with a few parameters. It would not be then necessary to copy and paste the code. If you are not up to that contribution, you probably better go with the files I created. You can find them below.<br />
<br />
<ul>
<li><a href="https://projects.kde.org/projects/playground/mobile/wiki-reader/repository/revisions/master/entry/frontends/blackberry/cmake/FindBBSystem.cmake">Finding the Blackberry System library</a></li>
</ul>
<br />
<ul>
<li><a href="https://projects.kde.org/projects/playground/mobile/wiki-reader/repository/revisions/master/entry/frontends/blackberry/cmake/FindBBCascades.cmake">Finding the Blackberry Cascades library</a></li>
</ul>
<br />
<ul>
<li><a href="https://projects.kde.org/projects/playground/mobile/mrdanga-player/repository/revisions/master/entry/frontends/blackberry/cmake/FindBBMultimedia.cmake">Finding the Blackberry Multimedia library</a></li>
</ul>
<br />
<br />
<br />
<h3>
<b>Deploying the application to the device</b></h3>
<br />
<br />
I wrote a primitive python script for this after gathering all the information what flags to use. <a href="https://projects.kde.org/projects/playground/mobile/wiki-reader/repository/revisions/master/entry/frontends/blackberry/deploy-to-blackberry.py">Here</a> you can the result. This one is more or less just a hint as it cannot be used that directly. I chose python because then I can also use this on Windows and elsewhere as python is a nice cross-platform scripting languag<i>e</i>.<br />
<br />
Essentially, there are several tools that have to be used for installing and then launching the application on the device from your host system:<br />
<br />
<ul>
<li><i>Set up the Blackberry NDK environment</i></li>
</ul>
<br />
I personally made an alias for this, but here you can find the comment:<br />
<br />
-> <i>source /opt/bbndk/bbndk-env.sh</i><br />
<br />
<ul>
<li><i>blackberry-connect</i></li>
</ul>
<i></i><ul>
</ul>
I have not tried to develop over Wi-Fi because I use mobile internet, so that was not an option. I also prefer the usb link as it is faster and more reliable. I made aliases for these, too. You have to supply a proper public ssh file. I think the default length is not proper, but a new one can be generated easily. Here you can find the command for setting this all up:<br />
<br />
-> <i>ifconfig usb0 169.254.0.2</i><br />
<br />
-> <i>blackberry-connect 169.254.0.1 -password devicepassword -sshPublicKey ~/.ssh/id_rsa_rim.pub</i><br />
<br />
<ul>
<li><i>blackberry-nativepackager</i> </li>
</ul>
<br />
Here you can find an example how to use it:<span class="comment"> </span><br />
<br />
<span class="comment"> -> <i>blackberry-nativepackager -package -target bar test.bar /path/to/the/bar/descriptor/xml/file.xml -devMode</i></span><br />
<br />
<ul>
<li><i>blackberry-deploy </i></li>
</ul>
Here you can find an example how to use it:<br />
<br />
<span class="comment"> -> <i>blackberry-deploy -installApp -device 169.254.0.1 -launchApp -password devicepassword -package test.bar</i></span><br />
<br />
<br />
<br />
<h3>
<b><span class="comment">Debugging from command line</span></b></h3>
<span class="comment"></span><br />
<span class="comment"><br /></span>
<span class="comment">A simple ssh connection can be used for logging into the device once the development mode is switched on in the settings. It has to be done after each boot as of now on my devalpha, at least. Make sure the connection is established properly and the blackberry-connect process is still up. Here you can find the command for that:</span><br />
<span class="comment"><br /></span>
<span class="comment"> -> <i>ssh -i ~/.ssh/id_rsa_rim devuser@169.254.0.1</i></span><br />
<span class="comment"><br /></span>
<span class="comment">Once this is done, there are some tricks to get information about QML syntax issues, C++ crashes, reading your intended log file, and so forth:</span><br />
<span class="comment"><br /></span>
<span class="comment"> -> <i>slog2info -w </i></span><br />
<br />
<span class="comment"><i> </i>or/and</span><br />
<br />
<span class="comment"><i> </i></span><br />
<span class="comment"><i> -> cd /accounts/1000/appdata/${id_from_the_bar_descriptor_file}/logs && cat log</i></span><br />
<br />
<span class="comment">You can also get the screenshots created on the device by pressing the two volume buttons simultaneously:</span><br />
<br />
<span class="comment"><i> </i></span><br />
<span class="comment"><i> -> </i></span><i>scp<span class="comment"> -i ~/.ssh/id_rsa_rim devuser@169.254.0.1:/accounts/1000/shared/camera/IMG_*.png /path/to/the/directory/to/store/the/screenhots</span></i><br />
<i><span class="comment"><br /></span></i>
<i><span class="comment"><br /></span></i><br />
<h3>
<i>
</i><b><span class="comment"> </span></b></h3>
<h3>
<b><span class="comment">Application signing for AppWorld</span></b></h3>
<span class="comment"><br /></span>
<span class="comment">Here you can find the command I used:</span><br />
<br />
<br />
<span class="comment"> -></span><span class="string"><span class="delimiter"> </span><i><span class="content">blackberry-nativepackager </span></i></span><i><span class="string"><span class="delimiter"></span><span class="content">-package</span><span class="delimiter"> </span></span><span class="string"><span class="delimiter"></span><span class="content">-target</span><span class="delimiter"> </span></span><span class="string"><span class="delimiter"></span><span class="content">bar test.</span></span><span class="string"><span class="content">bar</span></span> /path/to/the/bar/descriptor/file.xml <span class="string"><span class="delimiter"></span><span class="content">-sign </span></span><span class="string"><span class="delimiter"></span><span class="content">-cskpass</span></span> devicepassword <span class="string"><span class="content">-buildId</span><span class="delimiter"></span></span> <span class="string"><span class="delimiter">1</span></span></i><br />
<br />
<br />
Note: Do not forget that you have to increase the -buildId value for each new signing.<br />
<h3>
</h3>
<h3>
<b> </b></h3>
<h3>
<b> </b></h3>
<h3>
<b>Testing someone else's application</b></h3>
<br />
This is also a common request that someone would like to get feedback about the application before even getting approved in the AppWorld. In such cases, you may request your friends and acquaintances to test it. This could also happen vice versa so that you are asked for testing an application and provide feedback. Hence, it is useful to know how you can do that. Here is the command I used.<br />
<br />
<br />
<span class="comment"> -> <i>blackberry-deploy -installApp -device 169.254.0.1 -launchApp -password devicepassword -package test.bar</i></span><br />
<br />
<br />
<br />
<h3>
<span class="comment"><b>Conclusion</b></span></h3>
<br />
<span class="comment">Like many things in the life, this is also possible<i><b>. </b></i>I do not find any issues with this workflow for application development, but I am a bit strange developer. I am glad to have found the way I like spending my time. Many thanks go to Bill Hoffman from Kitware for patiently helping me with cmake issues <a href="http://www.cmake.org/pipermail/cmake/2013-January/053221.html">on the cmake mailing list</a>.</span><br />
<br />
<br />
<span class="comment">Hope, it helps some people out there.</span><br />
<br />
<br />
<span class="comment"><b>Happy Blackberry 10 hacking! :-) </b></span>Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com4tag:blogger.com,1999:blog-2795663664308299225.post-72385739111845136202013-02-10T01:26:00.004-08:002013-02-10T01:44:57.722-08:00New applications for Blackberry 10Hi everyone,<br />
<br />
<br />
<b>Introduction</b><br />
<br />
I have been planning this post for a while, but I had some real life troubles and also other duties. Finally, I have some time to write this down briefly!<br />
<br />
In short, I have created two new applications for Blackberry 10. I tested them on my <a href="https://developer.blackberry.com/blackberry10devalpha/">DevAlpha</a> device. The first one became the candidate for getting a <a href="https://developer.blackberry.com/limitededition/">Limited Edition</a> device in the end.<br />
<br />
<br />
<b>Wiki Reader</b><br />
<br />
As I have been a wikipedia fan for a while, I thought this would be a good idea to help myself and others to have an application for reading wikipedia pages easily. There was an application on Harmattan (N9) called "Cutewiki" available in Ovi Store. I had been using that a lot because I think it is a great application. As the author did not plan to port that to Blackberry 10, I wrote one for myself.<br />
<br />
The source code is <a href="https://projects.kde.org/projects/playground/mobile/wiki-reader">available</a> under the KDE umbrella. The application was approved in <a href="http://appworld.blackberry.com/webstore/content/21799039/">AppWorld</a>, but here you can find some screenshots embedded as well:<br />
<br />
<b> </b><br />
<b> </b><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI0M5a05LLVkZhvipE-hFd9aKeZC8l7JHPpmDA9zVSx5UovknRYsuYt71CAgMs06HI8Rij-nv2CydR3MlmUomq3qK4CG-ZEvml5_l2moJQOtIzFbU85G_x6dW0UsOmmZu4UQRC8fHl-QY/s1600/IMG_00000034.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI0M5a05LLVkZhvipE-hFd9aKeZC8l7JHPpmDA9zVSx5UovknRYsuYt71CAgMs06HI8Rij-nv2CydR3MlmUomq3qK4CG-ZEvml5_l2moJQOtIzFbU85G_x6dW0UsOmmZu4UQRC8fHl-QY/s320/IMG_00000034.png" width="192" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Searching for articles</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCfpjiYIixMFdeebSu9d_MH5gql3u7FBvaxgn3-HuEh_e0g0xglq5G8cnRM9fe6gHZV2SbvcOOS3T5BSpI3P0FAkoKG0hRiI18g_GWUWotgmS87ZmzDNCPrwaT2gEDPRSqg-_Q0bmzrRE/s1600/IMG_00000042.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCfpjiYIixMFdeebSu9d_MH5gql3u7FBvaxgn3-HuEh_e0g0xglq5G8cnRM9fe6gHZV2SbvcOOS3T5BSpI3P0FAkoKG0hRiI18g_GWUWotgmS87ZmzDNCPrwaT2gEDPRSqg-_Q0bmzrRE/s320/IMG_00000042.png" width="192" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Reading articles</td></tr>
</tbody></table>
<br />
<br />
<b>Mrdanga Player</b><br />
<b><br /></b>
I had been playing bass guitar for many years during my student years, and I have been a fan of <a href="http://en.wikipedia.org/wiki/Khol">mrdanga</a> recently. There was an application for Harmattan (N9) called "Finger Drums". I felt in love with that application after the first checkout. It is an awesome piece of software with lots of fun!<br />
<br />
This drove me to write an application for Blackberry 10 to enable people to get to know what mrdanga is and how it sounds. It is a lot simpler emulation than a whole drum kit. I think it is still nice for those who like this instrument, and potential newcomers that can get to know it this way. There is also <a href="http://www.youtube.com/watch?feature=player_detailpage&v=5-wTYAplCSQ#t=186s">a nice video on youtube</a> if you would like to check out what the masters can do with this instrument. :) <br />
<br />
The source code is <a href="https://projects.kde.org/projects/playground/mobile/mrdanga-player">available</a> under the KDE umbrella. The migration is now ongoing to <a href="https://projects.kde.org/projects/playground/mobile">Playground/Mobile</a> where the wiki-reader also resides.<br />
<br />
The application was submitted to AppWorld, and it is in review stage. For those who would like to try out the latest version, I uploaded the <a href="https://www.dropbox.com/s/9wxu79v8n5oj481/mrdanga-player.bar">package</a> to my dropbox. I would also like to share some screenshots here.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvQC7hGTzbuipYatOZpbYGVd-T-K2SAAIrBqNLpQgT-VBlqx7Q9xgfkEWt1Oe7NT0C8WtgPv4-eO_FVs3UAqxVPi4htWC2yn38r-e3nzJ-bmB0TIfn6l2LQEzsesYezONtqyF3nX2GZXk/s1600/splashscreen.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvQC7hGTzbuipYatOZpbYGVd-T-K2SAAIrBqNLpQgT-VBlqx7Q9xgfkEWt1Oe7NT0C8WtgPv4-eO_FVs3UAqxVPi4htWC2yn38r-e3nzJ-bmB0TIfn6l2LQEzsesYezONtqyF3nX2GZXk/s320/splashscreen.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Splash screen</i></td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqJWnvi2OXxNJx4yVWRXObE4H64xTMos3Q-x7hp6bcaNMz5-9ht0iNPEosetw_zN9Jq-HDmpQc9nAjMC4JvC72GWgwiYETrA7MoXQ7vo8OWLSInvPAYrAqtcoz-5YFxs2yB4tNb7N4ziM/s1600/IMG_00000046.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqJWnvi2OXxNJx4yVWRXObE4H64xTMos3Q-x7hp6bcaNMz5-9ht0iNPEosetw_zN9Jq-HDmpQc9nAjMC4JvC72GWgwiYETrA7MoXQ7vo8OWLSInvPAYrAqtcoz-5YFxs2yB4tNb7N4ziM/s320/IMG_00000046.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Mrdanga heads with darker background</i></td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC0KjeN4GbzQJHe_GXzl6bktcc7lRuHwxEK6WKkFKPk_-L_IYa5tOHupJcZn7DGub7_LcSTsvTkT1RkpiCF2ILDvGQd3X1iQVjDBEnChnyE1ssfeLEC5DYFDpCc0jS5NCv1hl9xKbofzA/s1600/IMG_00000055.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC0KjeN4GbzQJHe_GXzl6bktcc7lRuHwxEK6WKkFKPk_-L_IYa5tOHupJcZn7DGub7_LcSTsvTkT1RkpiCF2ILDvGQd3X1iQVjDBEnChnyE1ssfeLEC5DYFDpCc0jS5NCv1hl9xKbofzA/s320/IMG_00000055.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Mrdanga heads with brighter background</i></td></tr>
</tbody></table>
<br />
<br />
<b></b><br />
<b>Kudos</b><br />
<br />
Many thanks go to RIM for providing DevAlpha and Limited Edition devices to the community!<br />
<br />
For sure, many thanks go to the KDE Project as well for providing the source code repository, bugtracker, and the whole KDE infrastructure for this!<br />
<br />
There will be a follow up post soon about developing Blackberry 10 applications from command line with cmake. Stay tuned!<br />
<br />
<br />
<br />
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com14tag:blogger.com,1999:blog-2795663664308299225.post-61978219416138761802013-01-20T07:09:00.003-08:002013-01-20T10:09:50.526-08:00Qt5 packages for ArchlinuxHi all,<br />
<br />
I had built modularized Qt5 packages (except qtdocs and qtwebkit) for Archlinux x86_64 a few days ago, but unfortunately I did not have time to write even a short blog post for the time. Here you can find the packages:<br />
<br />
<a href="https://www.dropbox.com/sh/gfn3bm9jno9c9ev/L8rCozTWtF">https://www.dropbox.com/sh/gfn3bm9jno9c9ev/L8rCozTWtF</a><br />
<br />
There are python3 issues with WebKit for now, so it is not included. I had submitted a <a href="https://bugs.webkit.org/show_bug.cgi?id=106645">patch</a>, but I have not yet had time to continue the investigation. As it turns out the issue is more complex than previously thought. <br />
<br />
Nevertheless, It should be fixable by using python2 if someone is interested in that.<br />
<br />
I will try to keep it up to date once 5.0.1 is out. Hope, it helps.Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com4tag:blogger.com,1999:blog-2795663664308299225.post-49441973636662283672012-11-02T08:14:00.002-07:002012-11-02T08:14:50.588-07:00The Future of C++: Live broadcast this Friday<a href="http://herbsutter.com/2012/10/29/the-future-of-c-live-broadcast-this-friday/">http://herbsutter.com/2012/10/29/the-future-of-c-live-broadcast-this-friday/</a>Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-62909527259036148822012-10-06T05:16:00.001-07:002012-10-06T05:16:35.282-07:00Randa: KDE Edu installer for WindowsSome of you may question why I was working on the Rekonq Windows installer at the KDE Edu sprint in Randa. This is a very good question because it seems at first glance that got I distracted from my reason for travelling there. Although, I do not unfortunately have screenshots in this post, let me explain the situation. It is a bit dry for a reason, but please bear with me. :-)<br />
<br />
The KDE Edu sprint began with the <a href="http://community.kde.org/KDEEdu/Sprint2012/WindowsNotes">KDE Edu on Windows session</a>, at least for me. We had a very productive discussion during the session and among many topics one topic was particularly close to my heart; just like at the KDE Windows BoF in Tallinn at aKademy:<br />
<br />
How can we proceed with promoting KDE Edu on Windows? How can we get an installer as soon as possible?<br />
<br />
Having had the session I briefly decided in my mind I was going to work on an installer as an experiment when we have spare time among the sessions.<br />
<br />
The KDE Windows team did a great job for aiding the situation, so many thanks to them. One thing which was immediately obvious in this area: we have to have an installer for a full KDE Edu stack, so not just a single application. We have had examples out there for having a Windows Installer for Amarok and so forth, but they are all standalone applications.<br />
<br />
Although I have made Windows NSIS installers previously for Gluon, Mula and so forth by using CPack, as a total newbie about making Windows installers this way, I have decided to make an in-between step. What in-between step exactly? That said, having thought through, it was clear to me I should grab the "qewitter" package and get something similar done for a KDE application. As I previously had the urgent need for a Rekonq installer at my company, I stuck with the idea of creating a standalone installer for Rekonq and then learning the basics along the way, and once that is done I can introduce the new factor of having an installer for a full stack, and not just a standalone.<br />
<br />
As you may have read my previous blog post about the initial success of the Rekonq installer, I began the work on the KDE Edu installer. Actually I got that working during Randa with a few quirks. The most important issue was that I did not get a shortcut in the Start menu for each application. Meanwhile the KDE Edu suite installed fine with a simple "next workflow", one had to go the executable files and run them manually. Therefore, theoretically it was installable, but not too user friendly. ;-)<br />
<br />
As for accomplishing that goal, I had to make a custom NSIS script which did not have time in Randa, but actually I got that done and <a href="https://projects.kde.org/projects/kdesupport/emerge/repository/revisions/master/show/portage/package/kdeedu-package">committed</a> at the Milan Bergamo airport and also onboard the plane. Vis major situation is vis major... Unfortunately when I was generating the latest version of the installer, my Windows 7 froze on the airplane, and did not respond, no matter what I did. When I tried to force a hard reboot, the operating system did not boot anymore. The last days I have tried to repair the ntfs filesystem on my Linux operating system with "ntfsfix", I have also tried to get the boot manager repaired. I have also tried to use the Windows 7 DVD I got from my colleague, but after two unsuccessful tries (3 hours repair / try), I just gave up.<br />
<br />
If anybody has a good idea how I could get my Windws 7 working again, let me know. Otherwise I will just back-up the kderoot folder, and execute a reinstall when I have a little free time. In the meantime, if anybody is interested in the "raw installer", no shortcuts in the Start menu as it is not the latest generation, I can upload to the winkde.org server. :-)<br />
<br />
Alternatively, if someone has a KDE Windows emerge environment, "emerge --package kdeedu-package" should also work theoretically. That even worked for me practically. :)<br />
<br />
Last, but not least: I left out the "Step" and "Rocs" project out of the KDE Edu installer for now as they have had some build issues. I began to address the Rocs build issues at the sprint, but I was unable to solve that completely. "Step" is currently a bit of unmaintained piece, and the compilation errors were not too easy to fix up, so we did not spend too much time with that.<br />
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com2tag:blogger.com,1999:blog-2795663664308299225.post-5887868658360402702012-09-25T15:04:00.001-07:002012-09-25T15:08:06.720-07:00Reminder from Randa: Free Playbook for KDE contributors!While I was in Randa at the Edu mobile session, I realized that we still have the KDE Playbook Contributor Device Program open. There are only a few days left, so do not be shy. Hurry up if you would like to apply for a device and help the KDE Project to rock on further. ;-)<br />
<br />
<a href="http://community.kde.org/index.php?title=KDE_Mobile/Blackberry/Contributor_Device_Program">http://community.kde.org/index.php?title=KDE_Mobile/Blackberry/Contributor_Device_Program</a><br />
<br />
Also, please spread the word. Thank you in advance!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHAucoeoPNao6p9uY6-AoQ7riKN60VvWx3euRteYIYx5YT4cIDVJXRhU1Yc2jXszOTq068DpkPbUHq0Yc9Q7v7Jft_uoNouDexNN88CWyQMR72rnn2NlY3S43reEViZr-xEtwVcDZlpWo/s1600/800px-BlackBerry_PlayBook.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHAucoeoPNao6p9uY6-AoQ7riKN60VvWx3euRteYIYx5YT4cIDVJXRhU1Yc2jXszOTq068DpkPbUHq0Yc9Q7v7Jft_uoNouDexNN88CWyQMR72rnn2NlY3S43reEViZr-xEtwVcDZlpWo/s400/800px-BlackBerry_PlayBook.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Blackberry Playbook</td></tr>
</tbody></table>
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com4tag:blogger.com,1999:blog-2795663664308299225.post-11301771101090281952012-09-24T13:14:00.001-07:002012-09-24T13:14:42.963-07:00Randa: Rekonq installer for WindowsAs a Rekonq fan, I always have been interested in helping with Rekonq development, even if I had very limited time to do so. Although my daily job has been recently migrating to Windows XP, I am still preserving my Linux roots. I have always wanted to switch to Rekonq on my Windows box instead of the alternative solutions.<br /><br />There was an excellent KDE Windows BoF at Akademy this year in Tallinn. There was some interest from the participants' side, including me, to make Rekonq run on Windows. I was compiling the software during the session, and I actually got it running for my generic purposes right there, as in gtalk, ssl, and so forth. While I was able to make it compile, it is not a process that the average user will find easy.<br />
<br />
<br />
<br />
<br />Therefore, I decided to go to the #rekonq channel on irc back then and talk to "adjam", the maintainer. We were both excited to get this up and running. However, unfortunately, as usual, I personally got distracted with other tasks. That was more than two months ago, but now I have found the time here in Randa again to work on bringing this vision to practice.<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzckc7VAeNX7IoWJ3wV0bQDJFUCOjriCifvH7V7dJBmoNW7UW3iO08U4E_Yk3So1Z69ng29kJjGNAQY32_CwUwCc42gIHHGJFEfeZc7nvPWhu2Bi6nuwc-8G1dyi2uCWAVr6X7n3MsrFk/s1600/rekonq-installation-0.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzckc7VAeNX7IoWJ3wV0bQDJFUCOjriCifvH7V7dJBmoNW7UW3iO08U4E_Yk3So1Z69ng29kJjGNAQY32_CwUwCc42gIHHGJFEfeZc7nvPWhu2Bi6nuwc-8G1dyi2uCWAVr6X7n3MsrFk/s400/rekonq-installation-0.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Install Path selection</td></tr>
</tbody></table>
<br />
<br />
<br />Thanks to the very helpful KDE Windows team (in this case Patrick and Patrick ;), I was able to pull it all together. Here you can find the link for the installer:<br /><a href="http://winkde.org/pub/kde/ports/win32/repository/other/rekonq-x86-setup-1.1.exe">http://winkde.org/pub/kde/ports/win32/repository/other/rekonq-x86-setup-1.1.exe</a><br />
<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMANcviGvFSo90u2uLqxXeUCwhui6fAlKIsHjXT5jpyiwNBdAvCgG30od1jMKQR1FwKGeKXc3Vhe3ac61BoTLfKsv7HYQJACYTnh-t6XVVhJE58HWjKoxg0A4n7WHgZlCbgCV2I75Sog/s1600/rekonq-installation-1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMANcviGvFSo90u2uLqxXeUCwhui6fAlKIsHjXT5jpyiwNBdAvCgG30od1jMKQR1FwKGeKXc3Vhe3ac61BoTLfKsv7HYQJACYTnh-t6XVVhJE58HWjKoxg0A4n7WHgZlCbgCV2I75Sog/s400/rekonq-installation-1.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Installing...</td></tr>
</tbody></table>
<br />
<br />
Last, but not least: this is not the end of the story. There is still lots of improvement needed for the installer to get really fine tuned. Currently, the installer and installed sizes are bigger than they should be. Even with those issues and some runtime inconveniences, this is a great milestone for Rekonq in my opinion. Hope this makes someone's day more bright in the future. If not, it is also okay; I had a lot of fun while doing this. :-)<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMeIuLy_Izt9czmXlh0jYSfR9hZLdhBo6EPJXmQz4YeD-37qI2AVKObcqDhxfnzk8j3I8HCXJJQvv-lX1oAk3N2zKamwysgB2b7CWpwyTP3Mq1DYN4SP1aQumGGtcrmaQS0E6MNPrjRzY/s1600/rekonq-installation-2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMeIuLy_Izt9czmXlh0jYSfR9hZLdhBo6EPJXmQz4YeD-37qI2AVKObcqDhxfnzk8j3I8HCXJJQvv-lX1oAk3N2zKamwysgB2b7CWpwyTP3Mq1DYN4SP1aQumGGtcrmaQS0E6MNPrjRzY/s400/rekonq-installation-2.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">In action</td></tr>
</tbody></table>
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com12tag:blogger.com,1999:blog-2795663664308299225.post-89954105232444654452012-09-23T20:47:00.001-07:002012-09-23T20:47:42.768-07:00Randa: KDE Games for WindowsAs you may have already heard or read, the kde games stack has recently migrated to the git infrastructure. The new KDE Windows source packages are finally available now by using emerge. The changes will be hopefully available for end users later at the 4.9 release.<br />
<br />
I have just skimmed through the build for all the packages by using "emerge kdegames" and there were no build issues which is cool. I do not have time for now to test all the games during the runtime, but I briefly fired up KBreakOut before going to sleep. :-)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDfIW63Xn9CLmz3_THTjjRbKQFVucwg4bOacN7CoAzFIIpqGJxL2HV_Cgipeh9FsvLr4Yd-n1CvUfQY4RD4F_CrKIXA-2NF-IhcU4g3gmF8s-CEBb32quqP15-jUaV8Zze3SZZorFLtec/s1600/kbreakout.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDfIW63Xn9CLmz3_THTjjRbKQFVucwg4bOacN7CoAzFIIpqGJxL2HV_Cgipeh9FsvLr4Yd-n1CvUfQY4RD4F_CrKIXA-2NF-IhcU4g3gmF8s-CEBb32quqP15-jUaV8Zze3SZZorFLtec/s400/kbreakout.png" width="400" /></a></div>
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com1tag:blogger.com,1999:blog-2795663664308299225.post-66183377625134939502012-09-22T15:03:00.001-07:002012-09-22T15:16:03.225-07:00Randa: KDE Frameworks build experiment on HarmattanWe had two great (plus one about the generic QML topic) sessions today I attended, here at the KDE Edu Sprint.<br />
<br />
The topics were KDE Edu on Windows and then on Plasma Active. I will try to blog about those sessions later as I found them really interesting and noteworthy.<br />
<br />
We had an idea about coordinating and discussing the effort for the Qt5/KF experiment. The session was not yet held, but let me blog a bit now about the Qt5/KF efforts anyway. :-)<br />
<br />
As you may already know, I have a genuine interest to bring Qt and KDE to mobile platforms in general. ;-) Due to the lack of accces to the raspberry pi, playboook and so forth, I am only able to experiment with KDE Framework on my N9. I have just made the extra-cmake-modules, cmake 2.8.9, the phonon version 4.6.0 available for this platform.<br />
<br />
Here are the step how you can build the frameworks branch of kdelibs for Harmattan:<br />
<br />
1) Add the following repositories (Nokia and Community) to your sources.list files:<br />
<br />
deb http://harmattan-dev.nokia.com/ harmattan/sdk free non-free
<br />
deb http://repo.pub.meego.com/home:/rzr:/harmattan/MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard/ ./<br />
<br />
2) apt-get update<br />
<br />
3) fakeroot apt-get install qt5-* (the qt5 dependencies you need)<br />
<br />
4) fakeroot apt-get install cmake extra-cmake-modules libphonon-dev<br />
<br />
5) git clone -b frameworks http://anongit.kde.org/kdelibs<br />
<br />
6) export PATH=/opt/qt5/bin:$PATH<br />
<br />
7) mkdir kdelibs/build && cd kdelibs/build && cmake -DCMAKE_SYSTEM_PREFIX_PATH=/usr/phonon ../<br />
<br />
The CMAKE_SYSTEM_PREFIX_PATH needs to be used unfortunately as we are unable to override system packages on Harmattan. Thereby, the phonon package and files cannot be overriden by the KDE phonon packages and files we need for frameworks. Hence, the prefix install "/usr/phonon" is used for now.<br />
<br />
It is not as difficult as it seems, albeit not the prettiest either admittedly. :-)<br />
<br />
Yet, I am happy with this achievement as it is a great milestone for the frameworks branch to be tested from non-desktop and ARM point of view as well. :-)<br />
<br />
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com0tag:blogger.com,1999:blog-2795663664308299225.post-65371275619814140662012-09-04T13:27:00.000-07:002012-09-04T13:27:45.672-07:00QtQuick 2 is coming to HarmattanI have made all the basic packaging for Harmattan right after the Qt beta 1 release. Now you can install the following packages from the community repository: qt-3d, qt5-base, qt5-declarative, qt5-jsbackend, qt5-location, qt5-multimedia, qt5-script, qt5-sensors, qt5-xmlpatterns, and qt5-components.<br /><br />As you can see, there is also a qt5-components package available. Last night I put some effort into porting the qtquick2 branch of the qt-components project to Qt5. Here you can find the steps to start the work on a Qt5/QtQuick2 application for Harmattan:<br /><br />* echo 'deb http://harmattan-dev.nokia.com/ harmattan/sdk free non-free' >> /etc/apt/sources.list.d/nicks.list<br />* echo 'deb http://repo.pub.meego.com/home:/rzr:/harmattan/MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard/ ./' >> /etc/apt/sources.list.d/nicks.list<br />* apt-get update<br />* fakeroot apt-get install qt5-components<br /><br />The QtQuick2 port to Qt5 has not yet been thoroughly tested, so runtime issues may be expected. If you would like to contribute, please grab the code from here:<br />git clone -b qtquick2 git://gitorious.org/+harmattan/qt-components/harmattan-qt-components.git<br /><br />Contributions still warmly welcome! Thank you for your attention.Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com7tag:blogger.com,1999:blog-2795663664308299225.post-50832128680128093062012-08-30T21:23:00.002-07:002012-08-30T21:25:52.649-07:00Qt5 Beta 1 is coming to HarmattanFirst of all, do not forget we still need some support for our Randa sprint.<br />
<br />
<br />
<a href="http://www.pledgie.com/campaigns/18045"><img alt="Click here to lend your support to: KDE Randa Meetings and make a donation at www.pledgie.com !" border="0" src="http://www.pledgie.com/campaigns/18045.png?skin_name=chrome" /></a><br />
<br />
<br />
I have just re-packaged my previous Qt5 snapshot version for the Qt5 base module last night. Having gotten the news about the beta 1 release yesterday, I have felt the urge to do so. :-) For installation, you need to do the following in your development environment (or on your phone):<br />
<br />
* echo 'deb http://repo.pub.meego.com/home:/rzr:/harmattan/MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard/ ./' >>/etc/apt/sources.list.d/nicks.list<br />
<br />
* apt-get update<br />
<br />
* fakeroot apt-get install qt5-base<br />
<br />
Done. Unfortunately, there are some ongoing issues for the Community OBS which currently block me to get the Qt5 jsbackend and declarative modules publicly built and distributed. Just one important of those:<br />
<a href="https://bugs.meego.com/show_bug.cgi?id=25710">https://bugs.meego.com/show_bug.cgi?id=25710</a><br />
<br />
Hope for the declarative module to be available soon, and then we can finish the QtQuick2 branch port of the qt-components project. This means the new plugin and native event filter API usages and so forth. <br />
<br />
As you can see, there is still a way to go, but the base is already there. :-)<br />
<br />
Contributions warmly welcome!Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com1tag:blogger.com,1999:blog-2795663664308299225.post-33017006054475303092012-08-13T22:33:00.000-07:002012-08-13T22:33:14.819-07:00Support the 2012 KDE Randa MeetingsIf you are in a position where you are able to help us to make this a success story, please consider so. :-)<br />
<br />
Here you can find the official announcement:<br />
<a href="http://pledgie.com/campaigns/18045">http://pledgie.com/campaigns/18045</a><br />
<br />
As a participant last year to the Randa meetings, I can also assure you
without any hesitation: it is an awesome and very beneficial event from
many point of views.<br />
<br />
<b>KDE Edu</b> <br />
<br />
<br />
I will be participating in the KDE Edu sprint, and it
would be gratifying to keep the excellent free software stack for
education going on nicely. It has been a solid and well-proven stack for
many years now, but we always face new challanges with the rapidly
changing world and technologies around. Here you can find our official
website:<br />
<br />
<a href="http://edu.kde.org/">http://edu.kde.org/</a><br />
<br />
We have been recently putting a lot of effort into making the
educational stack more accessible on mobile devices (tablets and
phones). Needless to say, we also have interesting challanges on desktop
as well on various platforms (Windows, Linux, and Mac).<br />
<br />
Free and accessible software is very important for us in Education. If
you like having this option for teachers, kids, students, and pupils: I
can only encourage you again to kindly consider your support, even if it
is just a penny. =)<br />
<br />
Here you can find the presentation slides and my talk with Aleix at the annual aKademy summit this year for further information:<br />
<br />
<a href="http://files.kde.org/akademy/2012/slides/Flexible_Education_with_KDE_-_Laszlo_Papp_and_Aleix_Pol_Gonzalez.pdf">http://files.kde.org/akademy/2012/slides/Flexible_Education_with_KDE_-_Laszlo_Papp_and_Aleix_Pol_Gonzalez.pdf</a><br />
<br />
<a href="http://files.kde.org/akademy/2012/videos/Flexible_Education_with_KDE_-_Laszlo_Papp_and_Aleix_Pol_Gonzalez.m4v">http://files.kde.org/akademy/2012/videos/Flexible_Education_with_KDE_-_Laszlo_Papp_and_Aleix_Pol_Gonzalez.m4v</a><br />
<br />Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com1tag:blogger.com,1999:blog-2795663664308299225.post-61617908671983537742012-01-05T11:52:00.000-08:002012-01-05T11:58:46.663-08:00Getting back to FOSS contributionsHi,<br />
<br />
Unfortunately, I have been busy recently with a couple of serious real life issues. Yeah, our life is not always an easy-peasy cakewalk; we sometimes think it is getting very grim. I was traveling back to Hungary about three weeks ago when I got the news my dear father had deceased after a stroke. It was two years ago, when I last saw him, but I still clearly recall his activities. What a great person, he will be extremely missed.<br />
<br />
It was not an easy situation, Christmas and New Year's Eve for us, especially for my mother who has spent 46 years with my father in this material life. I have tried to take care of my mother mentally and financially as much as possible. As for me, it was much simpler to accept the fact than I thought even though I loved him a lot. I prayed a lot for his soul during this period, especially during the funeral to reach the most appropriate position ever. I have a good poem for the situation that I would like to share (probably a good candidate for my pall when I reach my "end"):<br />
<br />
<i>For the soul there is neither birth nor death at any time. He has not come into being, does not come into being, and will not come into being. He is unborn, eternal, ever-existing and primeval. He is not slain when the body is slain.</i><br />
<br />
- Bhaktivedanta VedaBase: Bhagavad-gita As It Is 2.20<br />
<br />
Unfortunately it took an effect on my leisure time FOSS contribution and I had to withdraw my mentorship help of the Google Code-In session. Thanks to Lydia for helping me with that. I also had to withdraw my help from the KDE and Qt5 contributions that I previously discussed with David Faure. I am really sorry for those, again.<br />
<br />
The good news is that, I am now entirely back to Helsinki and can concentrate on amending the time spilling regarding these activities. I have also been organizing a Qt MeetUp [1] in Helsinki next week. It is also a sort of KDE 4.8. release party. Hope to see some of you there.<br />
<br />
I would like to wish a happy new year for you with a lot of FOSS acitivities. :)<br />
<br />
[1] <a href="http://www.meetup.com/QtEverywhere/Helsinki-FI/533242/?a=bn5_l1#946032">http://www.meetup.com/QtEverywhere/Helsinki-FI/533242/?a=bn5_l1#946032</a>Laszlo Papphttp://www.blogger.com/profile/06121113102679268802noreply@blogger.com1