tag:blogger.com,1999:blog-78467289735866176352024-03-14T10:23:46.416+01:00Hack WeekCornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.comBlogger47125tag:blogger.com,1999:blog-7846728973586617635.post-38740781571550675752015-04-07T00:06:00.002+02:002015-04-07T00:06:39.155+02:00SUSE Hack Week 12<div class="separator" style="clear: both; text-align: center;">
The Hack Week 12 poster:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-nyRAD1T30zo/VSMDPSvq16I/AAAAAAAAECc/3vMc8LZmJtw/s1600/hack-week-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-nyRAD1T30zo/VSMDPSvq16I/AAAAAAAAECc/3vMc8LZmJtw/s1600/hack-week-12.png" height="226" width="320" /></a></div>
<br />
<div>
<br /></div>
Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-89316098961817206992014-10-24T16:57:00.002+02:002014-10-24T16:57:46.138+02:00PlottingIt's done. Plotting data works now. Acquired with the command line client, secretly shared in the cloud, retrieved and plotted by the client again. Hack Week 11 is a success.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-gDdv4wF1WiQ/VEpofnIoL8I/AAAAAAAAC9U/h-QlgLlim7M/s1600/myer-plot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-gDdv4wF1WiQ/VEpofnIoL8I/AAAAAAAAC9U/h-QlgLlim7M/s1600/myer-plot.png" height="184" width="320" /></a></div>
<br />
I'll write more a little bit later about what I have done, how I did it, and what I learned. Now on my bike to add another bar to the chart.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-85861207520128789602014-10-23T17:15:00.005+02:002014-10-23T17:15:43.824+02:00Running clientThe <a href="http://github.com/cornelius/myer">reference client</a> for <a href="http://github.com/cornelius/mycroft">Project MySelf</a> is alive now as well. It talks to the <a href="http://github.com/cornelius/mycroft">server</a> and stores data, encrypted. It even can get back the data and decrypt it again. So the tooling is in place now. Next thing is actually gathering and displaying useful data.<br />
<br />Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-41806464967223981422014-10-20T23:40:00.004+02:002014-10-20T23:40:40.994+02:00Running serverI made the first steps with the <a href="http://github.com/cornelius/project-myself">Project MySelf</a> server <a href="http://github.com/cornelius/mycroft">Mycroft</a> today. I decided to write it in <a href="http://golang.org/">Go</a> and learned quite a bit about how to deal with HTTP in Go. It's a quite powerful approach.<br />
<br />
So now there is a server, which can register admin clients and properly authenticate access. Next stop is writing actual data.<br />
<br />Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-83447518562168218762014-10-19T01:29:00.002+02:002014-10-19T01:29:45.543+02:00Project MySelf - The PlanI prepared my Hack Week project, wrote down the <a href="https://github.com/cornelius/project-myself/blob/master/README.md">vision</a>:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-AbhlXamcwcc/VEL3b2H0DMI/AAAAAAAAC88/YRA3dRPW24Q/s1600/project-myself-vision.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-AbhlXamcwcc/VEL3b2H0DMI/AAAAAAAAC88/YRA3dRPW24Q/s1600/project-myself-vision.png" height="297" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
and made a <a href="https://trello.com/b/fjRMvDpB/project-myself">plan</a> how to get it done:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-F1IvLavX1Ww/VEL3cV2MI9I/AAAAAAAAC9A/Zs7nAslx4uQ/s1600/project-myself-plan.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-F1IvLavX1Ww/VEL3cV2MI9I/AAAAAAAAC9A/Zs7nAslx4uQ/s1600/project-myself-plan.png" height="196" width="320" /></a></div>
<br />
Next step: Get it done.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-7527487985750442002014-10-15T22:51:00.002+02:002014-10-15T22:51:47.312+02:00Hack Week Interstellar<div style="text-align: center;">
Hack Week 11 goes with a theme: Interstellar. Go where no one went before...</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-NRRKMYwUeCo/VD7djxb38zI/AAAAAAAAC7k/bIC4QjMPOrY/s1600/hackweek11-front.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-NRRKMYwUeCo/VD7djxb38zI/AAAAAAAAC7k/bIC4QjMPOrY/s1600/hackweek11-front.png" height="175" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
I'll work on a project to retain privacy for self-tracking data: <a href="https://hackweek.suse.com/11/projects/524">Project MySelf</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-riYO3183Wy8/VD7ddE5uV5I/AAAAAAAAC7c/-3OMcdxZR1c/s1600/hackweek11-projects.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://3.bp.blogspot.com/-riYO3183Wy8/VD7ddE5uV5I/AAAAAAAAC7c/-3OMcdxZR1c/s1600/hackweek11-projects.png" height="175" width="320" /></a></div>
<br />
<div style="text-align: center;">
<a href="https://github.com/cornelius/project-myself/blob/master/README.md">Read more</a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-uLuykOBqxr4/VD7dZ_66TgI/AAAAAAAAC7U/IyreaE_ZMD8/s1600/hackweek11-project.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-uLuykOBqxr4/VD7dZ_66TgI/AAAAAAAAC7U/IyreaE_ZMD8/s1600/hackweek11-project.png" height="175" width="320" /></a></div>
<br />
<div style="text-align: center;">
I'm looking forward to next week. Some serious hacking ahead...</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-35852399829275679312014-10-15T22:44:00.002+02:002014-10-15T22:44:25.265+02:00Hack Week 10For the record: <a href="http://blog.cornelius-schumacher.de/2013/10/an-audacious-goal-for-suse-hack-week-10.html">An audacious goal for SUSE Hack Week 10</a>Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-4324774547552270642013-05-22T11:55:00.000+02:002013-05-22T11:55:24.534+02:00Hack Week 9<br />
During <a href="http://hackweek.suse.com/">Hack Week 9</a> <a href="http://www.hennevogel.de/">Henne</a> and I worked on an <a href="https://github.com/SUSE/hackweek/wiki/Hackweek-Tool">app to manage Hack Week projects</a>. The goal was to provide a tool, which better supports the intention of Hack Week, to innovate, collaborate, and learn.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-WrHdPn0YFYs/UZAcMPEUdtI/AAAAAAAABHY/ueUT-xLf_GM/s1600/hackweek.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="137" src="http://1.bp.blogspot.com/-WrHdPn0YFYs/UZAcMPEUdtI/AAAAAAAABHY/ueUT-xLf_GM/s320/hackweek.jpg" width="320" /></a></div>
<br />
We decided to start from scratch and lined up a fine set of web technology to help us. <a href="http://rubyonrails.org/">Rails</a> as application framework, <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> for proper styling, <a href="https://www.heroku.com/">Heroku</a> for simple hosting, <a href="https://github.com/jnicklas/capybara">Capybara</a> for integration tests, <a href="http://jquery.com/">jQuery</a> for a snappy UI, <a href="http://www.postgresql.org/">PostgreSQL</a> to store our valuable data, <a href="http://haml.info/">Haml</a> for pleasant templates, <a href="http://www.omniauth.org/">OmniAuth</a> for secure and versatile authentication, and <a href="https://github.com/SUSE/hackweek/blob/master/Gemfile">some more</a>.<br />
<br />
A week is not too much, but it's enough to get something going, so we did some <a href="https://github.com/SUSE/hackweek/tree/master/design">whiteboard design</a> and than dived into coding to make it real. At the end we had a working first version. It's running at <a href="http://suse-hackweek.herokuapp.com/projects">suse-hackweek.herokuapp.com</a>. Go to the <a href="http://suse-hackweek.herokuapp.com/projects">projects page</a> to see the web app live in action.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-cYb5tgQk02o/UZyS3ahM-UI/AAAAAAAABIQ/YvCfYn0AekI/s1600/hackweek-tool.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="http://4.bp.blogspot.com/-cYb5tgQk02o/UZyS3ahM-UI/AAAAAAAABIQ/YvCfYn0AekI/s320/hackweek-tool.jpeg" width="320" /></a></div>
<br />
Our goal was to provide a convenient way to manage projects and provide the necessary structure to make it easy to find people and corresponding projects. In addition of managing the project data, we also wanted to have some way to comment, publish project updates, see the people involved, and make it easy to join projects, in order to facilitate interaction between people and so to tap into the creativity of the Hack Week crowd.<br />
<br />
We were able to accomplish most of this, and even started a basic recommendation engine, which would hint you at project, which might be interesting for you. This is more of an experiment, but an adequate one for a Hack Week. To get the application to a state where it can actually be used will still be a little bit of work, but it could be feasible to do that for the next Hack Week. We'll see how this goes. If you want to help, you're welcome. The code is at <a href="http://github.com/suse/hackweek">http://github.com/suse/hackweek</a>.<br />
<br />
Part of the fun of creating this application was going through a number of design iterations. Here are some screenshots of how the app evolved over the week for your viewing pleasure:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-H51jtsf-kG0/UZYvuzDq_iI/AAAAAAAABHw/xJ9ROEFb53o/s1600/2013-04-09_projects.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="274" src="http://4.bp.blogspot.com/-H51jtsf-kG0/UZYvuzDq_iI/AAAAAAAABHw/xJ9ROEFb53o/s320/2013-04-09_projects.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-UIi5MwD43gs/UZYvxA-hzgI/AAAAAAAABH4/dL5gAacNdd4/s1600/2013-04-10_projects.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="274" src="http://2.bp.blogspot.com/-UIi5MwD43gs/UZYvxA-hzgI/AAAAAAAABH4/dL5gAacNdd4/s320/2013-04-10_projects.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-D3x10FprPFU/UZYvxLOgK7I/AAAAAAAABH8/eEPwELUCcms/s1600/2013-04-11_projects.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="http://3.bp.blogspot.com/-D3x10FprPFU/UZYvxLOgK7I/AAAAAAAABH8/eEPwELUCcms/s320/2013-04-11_projects.png" width="320" /></a></div>
<br />
It still amazes me how quickly you can create results with Rails, especially if you have the opportunity to freely choose the technology and are not burdened by legacy code. It definitely was a fun week.<br />
<div>
<br /></div>
Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-44318264634882078662011-09-28T13:23:00.001+02:002011-09-28T13:23:56.548+02:00gem install owncloud-adminThe owncloud admin tool is now also available as a gem. Get it with "gem install owncloud-admin". You'll need to have the rubygems package installed in order to have the gem tool available.<br />
<br />
Ruby gems is a wonderful mechanism to distribute software. It literally only takes seconds from releasing a new version to having it available for all users. Particularly nice for prototyping, where you have frequent changes.<br />
<br />Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-70444452341848654162011-09-28T12:02:00.003+02:002011-09-28T12:13:23.108+02:00Side-tracked: ownCloud admin toolKlaas and Frank tricked me into getting side-tracked from my hack week project and writing a command line tool for installing <a href="http://owncloud.org/">ownCloud</a>. After a little bit of hacking I have a tool, which is able to install ownCloud to a local machine or to a remote server via FTP. There are a couple of issues with setting up ownCloud, when you only have FTP access to the server, but Frank is looking into a solution to that.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-LizjrcUZkWg/ToLwGyO093I/AAAAAAAAAS8/OsvSEeh6XJM/s1600/owncloud-admin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="209" src="http://3.bp.blogspot.com/-LizjrcUZkWg/ToLwGyO093I/AAAAAAAAAS8/OsvSEeh6XJM/s320/owncloud-admin.png" width="320" /></a></div>
<br />
The code is at <a href="https://github.com/openSUSE/owncloud-admin">github.com/openSUSE/owncloud-admin</a>. Next steps will be adding support for other installation methods and targets, e.g. via ssh or to specific systems like some of the popular NAS systems you might have running in your basement already.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-36798314623614149782011-09-27T12:51:00.000+02:002011-09-27T12:51:24.802+02:00Inqlude command line clientI just uploaded the latest version of the Inqlude command line client to Rubygems. This way it's easily accessible for anyone wanting to play around with it. You need the gem tool to be installed (on openSUSE it's a simple "sudo zypper in rubygems"). Then you can just do "sudo gem install inqlude" and you get the command line client, which is conveniently named "inqlude" as well.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-UUHpYp4facs/ToGqFRx9emI/AAAAAAAAAS4/b3ic1mxdzmo/s1600/inqlude-rubygems.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="217" src="http://3.bp.blogspot.com/-UUHpYp4facs/ToGqFRx9emI/AAAAAAAAAS4/b3ic1mxdzmo/s320/inqlude-rubygems.png" width="320" /></a></div>
<br />
The client is not complete yet. It does handle packages on openSUSE 11.4, so you can use it to see and install Qt libraries there. Backends for other distributions are still missing. More to do for this week...Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-48356279931357570732011-09-27T12:42:00.002+02:002011-09-27T12:42:40.933+02:00Inqlude web siteI have a prototype of the web site for the Qt library archive at inqlude.org. I just updated with the latest content. All the data there is extracted from SUSE RPMs for now. The data needs a lot more love to be more complete, accurate and helpful for application developers.<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-NS_i8-GEcFQ/ToGoUKZ5FRI/AAAAAAAAASw/Nqdsa2GXP6A/s1600/inqlude-website.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://2.bp.blogspot.com/-NS_i8-GEcFQ/ToGoUKZ5FRI/AAAAAAAAASw/Nqdsa2GXP6A/s320/inqlude-website.png" width="320" /></a></div>
<div>
<br /></div>
<div>
As a next step I intend to go through the library meta data, add missing info, and also add missing libraries, so that there is an initial set of useful information on the web site.</div>
<div>
<br /></div>
Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-17661907023643644412011-09-26T14:20:00.000+02:002011-09-26T14:20:03.468+02:00Hackweek 7It's the seventh SUSE hack week. I'm working on Inqlude, the Qt library archive, getting it beyond the prototype state. The idea is simple, create a web site listing all Qt libraries out there, and an easy way how to use them, think CPAN for Qt libraries.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-LQBjbfjrhdc/ToBtXZ5KyHI/AAAAAAAAASs/qKnycaLb0UI/s1600/inqlude-hacking.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-LQBjbfjrhdc/ToBtXZ5KyHI/AAAAAAAAASs/qKnycaLb0UI/s320/inqlude-hacking.png" width="320" /></a></div>
<br />
There are a lot of things, which need to be done:<br />
<br />
<ul>
<li>Finalize library meta data format</li>
<li>Adapt prototype tool to support the final format</li>
<li>Collect real meta data for as many libraries as possible</li>
<li>Finish the backend for installing binary packages on openSUSE via the openSUSE build service</li>
<li>Look into backends for other distributions, ideally using the same build service integration</li>
<li>Get libraries packaged, which don't have packages yet</li>
<li>Contribute back changes in package descriptions</li>
<li>Implement a Qt based client, possibly with a QML based GUI</li>
</ul>
A lot to do. Help is very much appreciated. If you are at SUSE or somewhere else, if you are a KDE, Qt hacker, a packager, an upstream library author, a Ruby programmer, or a QML specialist, don't hesitate, you are very welcome to join the fun. Just <a href="mailto:schumacher@kde.org">contact me</a>, and we'll figure out the rest.<br />
Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-73165746178901840512011-08-04T14:41:00.000+02:002011-08-04T14:41:17.625+02:00PolkaLast hackweek I was so busy with coding, that I didn't blog. But for reference here is the <a href="http://blog.cornelius-schumacher.de/2011/03/its-not-address-book.html">summary of my Hackweek 6 project</a>.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-42408624163395664332010-06-11T20:08:00.004+02:002010-06-11T20:18:17.814+02:00Testdrive SuccessAfter a bit of further hacking I have now access to testdrive from my SUSE Studio client. For a given build a testdrive can be started on the server and the client connects to it with an embedded VNC client. The following screenshot shows you the result, the infamous nInvaders appliance booting in testdrive.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I0jbESd5Btw/TBJ7_MkShPI/AAAAAAAAAIU/HeL8fwVx-lk/s1600/studiosus4.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="http://3.bp.blogspot.com/_I0jbESd5Btw/TBJ7_MkShPI/AAAAAAAAAIU/HeL8fwVx-lk/s320/studiosus4.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481580022098724082" /></a><br />The native VNC viewer gives great performance and is nicely integrated. This is a great environment for a little game of nInvaders.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I0jbESd5Btw/TBJ8DlOlgTI/AAAAAAAAAIc/p9v3wblnRK0/s1600/studiosus5.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 290px;" src="http://4.bp.blogspot.com/_I0jbESd5Btw/TBJ8DlOlgTI/AAAAAAAAAIc/p9v3wblnRK0/s320/studiosus5.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481580097438056754" /></a><br />It's Friday evening now, my hackweek ends here. I'm happy that I have reached my goal of implementing some basic functionality of a native graphical SUSE Studio client. I did a lot of infrastructure work, so that it's now much easier to add additional functionality to cover a more complete set of use cases. If somebody wants to help with implementing some more bits, I would be more than happy. But I will also try to find some time to do some more hacking on this project myself. It's a lot of fun.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-73300242333567567192010-06-11T15:24:00.003+02:002010-06-11T15:32:46.589+02:00Caching and more detailsI've now implemented caching of API requests in Studiosus, the graphical SUSE Studio client. This is essential for making the application responsive, as with cached data is can operate on native local data instead of waiting for the round-trip from the server. It's a pretty simple <a href="http://gitorious.org/suse-studio/studiosus/blobs/master/lib/cache.h">caching implementation</a> based on the URLs of the requests. I would love to hear feedback about better existing caching solutions which would solve this as well or better.<br /><br />So now that the client appears fast, I also improved the appliances list a bit. Garrett suggested to show the builds on the home view, so I implemented that. This gives more direct access to the builds, which are the essential object you want to work on in the client, so I think it makes a lot of sense to do it this way.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_I0jbESd5Btw/TBI6nd1bSiI/AAAAAAAAAIM/6oe8XcDN3-k/s1600/studiosus3.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 166px;" src="http://1.bp.blogspot.com/_I0jbESd5Btw/TBI6nd1bSiI/AAAAAAAAAIM/6oe8XcDN3-k/s320/studiosus3.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5481508146161338914" /></a><br />I've also worked on the Studio API itself a bit. It was lacking some API calls to handle testdrives, which I need for providing some local access to testdrives in the client. So I did a bit of Rails hacking and implemented these calls. They aren't deployed on the production system yet, though.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-75057100560893056292010-06-09T18:34:00.002+02:002010-06-09T18:35:44.137+02:00Source code for SUSE Studio clientI have pushed the source code of my graphical SUSE Studio client to gitorious now. Get it from the <a href="http://gitorious.org/suse-studio/studiosus">Studiosus repository</a>.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-45048519789112974902010-06-09T17:26:00.003+02:002010-06-09T17:30:34.175+02:00Second API callAfter <a href="http://github.com/cornelius/kode/commit/9532fe934bee12d19a00d041721cc01958ab276b">moving kxml_compiler to QXmlStreamWriter</a> I'm now able to do more than one API call in my SUSE Studio client. So I can now show the user information alongside the appliances list.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I0jbESd5Btw/TA-zJcnwZ_I/AAAAAAAAAIE/5V_Eq5pqtw0/s1600/studiosus2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 206px;" src="http://3.bp.blogspot.com/_I0jbESd5Btw/TA-zJcnwZ_I/AAAAAAAAAIE/5V_Eq5pqtw0/s320/studiosus2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5480796246416320498"></a><br /><div>Now I need some caching as loading the appliances list from the server can take a while.<br /></div>Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-65908083478464598642010-06-09T09:48:00.002+02:002010-06-09T10:25:23.291+02:00Hackweek VIt's hackweek again. This time I'm working on <a href="https://features.opensuse.org/309733">a graphical client for SUSE Studio</a>. <a href="http://blog.susestudio.com/2010/06/hackweek-graphical-client-for-suse.html">Read more</a> in the <a href="http://blog.susestudio.com">SUSE Studio blog</a>. I will report more detailed progress here.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-4053297421733300922009-07-27T17:46:00.003+02:002009-07-27T17:52:43.265+02:00Hackweek is overHackweek IV is over. I still have to write up my results. I got quite some things done, but there are also still a lot of loose ends. But it was a great start for the KDE SDK project. I certainly will spend some more time on it. I'll also review the design decisions I made at the beginning of the week. While working on the SDK I realized that a lot of the value such an SDK can have is not only delivered by the development tools itself, but also by integration with the community resources and the community itself. This is a powerful combination, something like developer's social desktop.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_I0jbESd5Btw/Sm3MoTp9BCI/AAAAAAAAAEU/sPdWs8_sZLo/s1600-h/hackweek4-button.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_I0jbESd5Btw/Sm3MoTp9BCI/AAAAAAAAAEU/sPdWs8_sZLo/s320/hackweek4-button.png" alt="" id="BLOGGER_PHOTO_ID_5363167724111201314" border="0" /></a>Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com1tag:blogger.com,1999:blog-7846728973586617635.post-77275314088380219522009-07-23T18:58:00.002+02:002009-07-23T19:04:55.330+02:00More OCS IntegrationI have worked a bit on the further integration of online services in the KDE SDK. Some really basic integration with Gitorious, the Build Service, and kde-apps is now implemented. There are still some missing links, like missing write support for content on kde-apps in the OCS API, but the basic idea seems to work well. Especially getting together all the information about who is taking part in the development from committers over packagers to fans opens some interesting use cases. I didn't plan this, but it seems the social desktop has great applications in the context of the KDE SDK. Let's see where this goes...Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-87448291077278096002009-07-21T16:21:00.003+02:002009-07-21T16:28:22.682+02:00Open Collaboration Services IntegrationAfter a bit of struggling with calling KIO slaves from Qt Creator, I now have some basic integration with the <a href="http://www.freedesktop.org/wiki/Specifications/open-collaboration-services">Open Collaboration Services</a> going. My friends from <a href="http://opendesktop.org/">opendesktop</a> are shown on the KDE Creator welcome page.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_I0jbESd5Btw/SmXPrSMThbI/AAAAAAAAAEM/AhV74-kMQHc/s1600-h/kdesdk2.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 242px;" src="http://4.bp.blogspot.com/_I0jbESd5Btw/SmXPrSMThbI/AAAAAAAAAEM/AhV74-kMQHc/s320/kdesdk2.png" alt="" id="BLOGGER_PHOTO_ID_5360919273979217330" border="0" /></a><br />This in itself isn't really useful yet, but it's a first proof of concept for the integration of online services in the KDE SDK. Integrating access to the app listing on kde-apps.org would be one of the next steps.<br /><br />The trick to use KIO slaves in Qt Creator (or any other Qt program, which doesn't use a KApplication), is to instantiate a KComponentData object. This provides all what's needed to run many of the classes which rely on some global KDE specific data being available.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-12037626689421556492009-07-20T15:58:00.003+02:002009-07-20T16:00:58.265+02:00Linking to KDE in Qt Creator pluginsFor some better integration with the KDE desktop, and to make use of some of the goodness of KDE, I would like to link to the KDE libraries in the KDE SDK plugin for Qt Creator. Apparently adding a simple<br /><blockquote>LIBS += lkdeui<br /></blockquote>to the qmake file does the trick. This is nice.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-59641793514913179862009-07-20T12:07:00.003+02:002009-07-20T12:22:12.100+02:00First ScreenshotAfter a little bit of hacking I have my first screenshot now:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_I0jbESd5Btw/SmRCDF2QBsI/AAAAAAAAAEE/5HABA49ikDg/s1600-h/kdesdk1.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 237px;" src="http://3.bp.blogspot.com/_I0jbESd5Btw/SmRCDF2QBsI/AAAAAAAAAEE/5HABA49ikDg/s320/kdesdk1.png" alt="" id="BLOGGER_PHOTO_ID_5360482077354493634" border="0" /></a>This is the start of the KDE SDK plugin I'm writing for Qt Creator. It doesn't do anything useful yet, but at least the basic plugin skeleton is in place.<br /><br />I'm hacking in a <a href="http://bit.ly/NNV1H">clone of the Qt Creator sources right on gitorious.org</a> right now. Creating the plugin wasn't really difficult, although the Qt Creator plugin interface suffers from some serious under-documentation.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0tag:blogger.com,1999:blog-7846728973586617635.post-7199234182034791622009-07-20T11:59:00.002+02:002009-07-20T12:07:26.164+02:00Design DecisionsThere are millions of different ways how to create a KDE SDK. To constrain this number a bit and get some focus I took a couple of <a href="http://blog.cornelius-schumacher.de/2009/07/creating-kde-sdk.html">design decisions</a>. That means I'll start with writing a KDE SDK plugin for Qt Creator which is meant to provide the main UI for the SDK.Cornelius Schumacherhttp://www.blogger.com/profile/07307631039358655025noreply@blogger.com0