tag:blogger.com,1999:blog-24538107900099374752024-02-20T16:47:06.310-08:00baedert-gsocTimm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-2453810790009937475.post-55518233890699067932018-02-05T04:25:00.000-08:002018-02-05T04:25:46.807-08:00GTK+ Hackfest 2018 <br />
As some of you may know, we had a GTK+ Hackfest on February 1st and 2nd in Brussels, Belgium. Matthias has already <a href="https://blogs.gnome.org/mclasen/2018/02/01/gtk-hackfest-day-1/">blogged</a> and <a href="https://blogs.gnome.org/mclasen/2018/02/03/gtk-hackfests-day-2/">blogged again</a> about the two days and detailed notes about all the things we discussed can be found <a href="https://wiki.gnome.org/Hackfests/GTK2018/Day1">here</a> and <a href="https://wiki.gnome.org/Hackfests/GTK2018/Day2">here</a>. He also has some nice pictures.<br />
<br />
<br />
From everything we discussed I'm mostly looking forward to migrating to GitLab so I can file <a href="https://trello.com/b/LdJVbfLw/gtk4">a few GTK+4 bugs</a> and mark quite a few of them as blockers for a 4.0 release. I hope this will happen as soon as possible since there are quite a few usability regressions in current gtk+ master compared to gtk3 and those need time to get ironed out.<br />
<br />
During the quiet time I've also managed to find a bunch of bugs in the GL renderer which I will tackle in the next days. Benjamin wrote a performance benchmark that made the GL renderer crash when using <span style="font-family: "Courier New", Courier, monospace;">gsk_renderer_render_texture</span> multiple times in a row but I've already fixed that one. Unfortunately, it also broke rendering textures from a different GL context but solving that requires a deeper surgery and deciding on how we handle sharing (or not sharing) GL resources across different renderers.<br />
<br />
I'd like to thank everyone who organized this event as well as the GNOME foundation for sponsoring my trip there. Spending nine hours in a bus was horrible but at least I arrived :) It was nice talking to the people in person instead of just over IRC. Also, they can't ignore you as well as on IRC!<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://wiki.gnome.org/Travel/Policy?action=AttachFile&do=get&target=sponsored-by-foundation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="125" data-original-width="230" src="https://wiki.gnome.org/Travel/Policy?action=AttachFile&do=get&target=sponsored-by-foundation.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Also, if you're reading this and have some application using gtk3, maybe you want to consider porting to gtk4 early? Doing that and reporting the problems you encounter will ensure a smoother experience once you fully switch to gtk4.<br />
<br />
I've already ported all of Corebird to gtk4 in a <a href="https://github.com/baedert/corebird/tree/next2">branch</a> that I will merge to master as soon as some of the bigger problems are fixed. I also have some automation for it, in case your project is written in C.<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>
Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-57728539282353568912016-02-27T11:13:00.000-08:002016-02-27T11:13:02.146-08:00(No) GtkImageView in GTK+ 3.20<br />
Remember my GSoC project that was supposed to happen for GTK+ 3.18?<br />
<br />
It didn't happen back then, we decided that at GUADEC in Sweden already. It was just too late for the release in September. So, 3.20 it is!<br />
<br />
Unfortunately, both the implementation and the port of eog were more difficult than I anticipated. Getting the interaction between the adjustment values and the gestures right took way too long. Porting eog is hard because it's not just an image viewer, but also allows users to save rotated images, etc. Porting it will require some serious work.<br />
<br />
So... 3.22 it is!<br />
<br />
<h3>
Why didn't we Merge it?</h3>
Ultimately, we didn't merge GtkImageView this cycle because there was no user of at the time of merge (there's an eog branch though), and there are some unsolved problems.<br />
<br />
The current API does not give you the amount of control your <i>probably </i>want when you write an image viewer, e.g. eog sets the filter depending on zoom state and user settings. Exposing an API for this would be a possibility, but not a very elegant one. Other problems include scalable vector graphics you want to re-render once the zoom changes.<br />
<br />
I' currently working on fixing these problems by using a more generic API for "images" than cairo surfaces or GdkPixbufs in the <a href="https://git.gnome.org/browse/gtk+/log/?h=wip/baedert/gtkimageview">wip/baedert/gtkimageview</a> branch. I'm also hoping to simultaneously work on gnome-photos, which is another interesting candidate because it uses gegl to draw the image.<br />
<br />
<h3>
The Good News</h3>
Over the course of GTK+ 3.19, quite a few people asked about GtkImageView and whether it's going to be merged or not. I think I always said yes because there was no real reason to say no, and now I'm a <a href="https://www.youtube.com/watch?v=jNGZo5gn_tc">big fat phony</a>.<br />
<br />
However, the "current" implementation works just fine if you want to display simple images, so here's <a href="https://github.com/baedert/gtkimageview">a repository</a> with a GtkImageView version you can use in your project (I hope). Contains GtkImageView, a simple demo and a vapi file (because I might need that in the not-so-distant future).<br />
<br />
If you use the version from this repo and find any bugs, please file them there since they might also exist in the version I'm working on in the GTK+ repository.<br />
<br />
And before I forget it, here's a useless video so this isn't all just text:<br />
<div class="separator" style="clear: both; text-align: center;">
<span id="goog_1398792626"></span><span id="goog_1398792627"></span><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/0_WrSJxwMXw/0.jpg" src="https://www.youtube.com/embed/0_WrSJxwMXw?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
<br />
Notice that the rotation doesn't happen around the image center, but around the center of the current visible part of the image. In case the rotation happens using a two-finger touchscreen gesture (or touchpad gesture I assume, I don't think I've ever tested this), the image will be rotated around the bounding box center of the gesture.<br />
<br />
All scale and angle changed are nicely animated unless you set transitions-enabled to FALSE (The "Reset" button in that video just sets scale to 1 and angle to 0). Also contains async image loading and a few other nice things that video doesn't show like the fit-allocation property (image will be scaled to the widget allocation) and the snap-angle property, in case you want to allow the user to use gestures to rotate the image, but only accept 90deg steps. <br />
<br />Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com2tag:blogger.com,1999:blog-2453810790009937475.post-35211734542316019432015-08-15T00:18:00.000-07:002015-08-15T03:29:00.611-07:00GUADEC 2015 & GtkImageView Update<h2>
GUADEC 2015</h2>
You are probably (hopefully!) all aware, but GUADEC happend this year from the 7th to the 12th of August in Göteborg, Sweden. Apart from all the interestring talks, we had lots of social events. I met lots of interesting people, some for the first time, some for the second time. I didn't sleep a lot in my six days in Göteborg unfortunately, so I was both relieved and sad that the BoF Days ended on wednesday.<br />
<br />
A few highlights in list form:<br />
<br />
<ul>
<li>Michael Catanzaro (whose name I now know to spell) taught me why Arch users can't access Facebook/Instagram anymore in apps using glib-networking. He also told me why I was unable to build gobject-introspection all this time and finally built it successfully at the conference.</li>
<li>People think I'm from Italy or Rumania</li>
<li>I got lots of positive feedback about GtkImageView</li>
<li>Federico gave me one of the foundation´s Chromebook Pixels to work on GtkImageView</li>
<li>Most of the technical talks had some great demos, especially Behdad´s talk about fonts</li>
<li>Apparently I (still) look like Andrea Veri</li>
</ul>
<br />
<h2>
GtkImageView</h2>
During GUADEC I also found some time to work on GtkImageView, specifically on the gestures. I implemented both scaling and rotating, but the touchscreen of my laptop is so bad that it's nearly impossible to properly test them.<br />
<br />
Federico gave me one of the Chromebook Pixels from the foundation to work on it more, but I didn't had a chance to try it until after the conference. It already helped in showing that the scaling API I had implemented is wrong on actual HiDPI displays. The plan for now is to fix that and then work more on the gestures behavior, since there are quite some corner cases we need to care and think about.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://wiki.gnome.org/Travel/Policy?action=AttachFile&do=get&target=sponsored-badge-shadow.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://wiki.gnome.org/Travel/Policy?action=AttachFile&do=get&target=sponsored-badge-shadow.png" /></a></div>
<br />
I'd like to thank all the organizers of this year's GUADEC for the great experience, the GNOME foundation for the sponsoring of all the interns including me, and my mentor Carlos Garnacho<sup>1</sup> for all the help and support during the time there. I'd also like to thank all the other attendees for the nice and informative conversations. I hope I see you all again next year!<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<sup id="1">1. I'll pay your airport ticket next year, don't think I'll forget.</sup>Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-62730799939809104292015-07-06T05:03:00.003-07:002015-07-06T05:18:53.173-07:00GtkImageView Round 2<h2 style="clear: both; text-align: left;">
GtkImageView GSoC Status Report No. 2</h2>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/TNc-aQSNFuE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/TNc-aQSNFuE?feature=player_embedded" width="320"></iframe></div>
<div class="separator" style="clear: both; text-align: center;">
(Sorry for the bad quality, but youtube seems to screw that up. <a href="http://videobin.org/+9a6/cez.ogg">here</a>'s a better version)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
So, it's already been a long time since my last update. I've reworked the demo in gtk3-demo, put the controls to the left side so we can fit more of them there, e.g. a text field to load a remote image, buttons for the 90° steps, etc. I implemented <span style="font-family: Courier New, Courier, monospace;">GtkScrollable</span> and started working on zoom and rotate gestures but scratched that again since I can't properly test it without a multitouch screen -- I will hopefully have a chance to implement and test that at GUADEC.<br />
<br />
Since image viewers usually don't let the user rotate the image arbitrarily but in 90° steps, <span style="font-family: Courier New, Courier, monospace;">GtkImageView</span> now has a <span style="font-family: Courier New, Courier, monospace;">snap-angle</span> property that, when enabled, rounds the given angle to the lower 90° step. The transitions are just a test, but I like them.<br />
<br />
I've pushed the current status to the <a href="https://git.gnome.org/browse/gtk+/log/?h=wip/baedert/gtkimageview">wip/baedert/gtkimageview</a> branch in the gtk+ git repository. It won't be merged like that and it's not done, but this way I can get some early feedback/review.<br />
<br />
Until the next status report, I'll have to rework the zoom modes (i.e. remove them), since it's not clear what exactly they mean and it's very hard to implement the behavior of a normal image viewer like eog with them. They will be replaced by a <span style="font-family: Courier New, Courier, monospace;">fit-allocation</span> property (and maybe some more to specify some additional behavior). The <a href="https://wiki.gnome.org/Projects/GTK%2B/GtkImageView">wiki page</a> has some more information right below the list of zoom modes.Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com3tag:blogger.com,1999:blog-2453810790009937475.post-53504381994503449252015-06-11T11:11:00.000-07:002015-06-11T11:11:32.985-07:00GSoC: GtkImageView Round 1<br />
<h2>
<span style="font-size: large;">GtkImageView!</span></h2>
<div>
GtkImageView is the widget you should be using if you want to present an image to the user. It supports scaling, rotating, async loading, has built-in gestures (for scaling and rotating) and lets you set different zoom modes.</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/AVvXsEjmSNzvoXNU8tPleaSkFLs7W3bWZjLDe4QxoXe55M-W6jEQZdVFDYbpqndkNsE6lXWnwE_7ECDW-Te7Pn4xl-pWcDsN8QpYzQ6Ey4EH5M1lJw4u-Eb_L9HwMxOh7JXjdTCAR8Zr6692tdO_/s1600/Screenshot+from+2015-06-11+19-40-45.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmSNzvoXNU8tPleaSkFLs7W3bWZjLDe4QxoXe55M-W6jEQZdVFDYbpqndkNsE6lXWnwE_7ECDW-Te7Pn4xl-pWcDsN8QpYzQ6Ey4EH5M1lJw4u-Eb_L9HwMxOh7JXjdTCAR8Zr6692tdO_/s400/Screenshot+from+2015-06-11+19-40-45.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Rotating a random .gif file in the demo program. The bounding box is shown in dark gray. It's playing, I swear.</td></tr>
</tbody></table>
<br /><div>
We are hoping to fix the code duplication found in applications like eog, gnome-photos and basically everything that has a "show this image preview in real size" functionality (like Corebird or sushi) -- it could also be used to show inline versions of images, e.g. in E-Mails where it's currently rather annoying to do so because there's no common widget that just does the job.</div>
<div>
<br /></div>
<div>
To track the (planned) API, features and possbile use cases, I've created <a href="https://wiki.gnome.org/Projects/GTK%2B/GtkImageView">a page on the GNOME wiki</a>, so if you have any suggestions or a use case for it in your application that's not covered by the material there, it would be nice to add some suggestions.</div>
<div>
<br /></div>
<div>
Next I'll be working on the current feedback I got from hadess and rishi to make their use cases work (or not, if it's not in the scope of GtkImageView :).</div>
Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-73605376332497739742014-08-30T07:15:00.000-07:002014-08-30T07:15:59.750-07:00Final GSOC Report: Snapshots in Gnome BoxesSo, finally here's my final GSOC report about the snapshot suppport in Gnome Boxes.<br />
<br />
After getting a freeze break approved, we could finally push all the patches yesterday. Luckily all the libvirt-glib patches have been merged before any freeze or release so if you update libvirt-glib and Boxes right now, there should be a "snapshots" page in the properties of every VM.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDNufnFhPEpdsCrPmtWNcaKDXj3Jbv9fcPJMo7fPN2ir7kUukGlgkZL-OOlQLR0RSipYLrjZzR5LLlSL9WT_7XZ0Q-iZUkbq4a-ZvEQaljqYiIz6iysI8tVKkFPBT_gxE76Rbq7obY8N4V/s1600/Screenshot+from+2014-08-30+12:51:44.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDNufnFhPEpdsCrPmtWNcaKDXj3Jbv9fcPJMo7fPN2ir7kUukGlgkZL-OOlQLR0RSipYLrjZzR5LLlSL9WT_7XZ0Q-iZUkbq4a-ZvEQaljqYiIz6iysI8tVKkFPBT_gxE76Rbq7obY8N4V/s1600/Screenshot+from+2014-08-30+12:51:44.png" height="268" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I'm currently looking into ironing out some of the rough edges that have been missed during the development/review like the fact that it's impossible to use snaphots on an old VM made with Boxes 3.12. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So if you want to give it a shot, make sure to file bugs for all the problems or ask in #boxes about it.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Since this will most likely be my last blog post here, I'd like to take the chance to thank my Zeeshan Ali and Christophe Fergeau for patiently reviewing my patches and answering my questions, was well as the entire GNOME team for giving me this opportunity.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-4190984968038491022014-07-15T15:32:00.000-07:002014-07-15T15:32:40.511-07:00GSOC Report 5Hi,<br />
<br />
since my last GSOC report I have (hopefully) finalized my patches for <span style="font-family: Courier New, Courier, monospace;">gvir_domain_list_snapshots_async</span>, which turned out to be a little harder (and more time consuming) than I anticipated because the example I modeled the code after leaked the GTask instance.<br />
<br />
Also, in more interesting news, jimmac made some great <a href="https://wiki.gnome.org/Design/Apps/Boxes/Snapshots">mockups</a>. These show primarily how snapshots are organized and how the user interaction works. Snapshots will be displayed in a list (meaning that they will still appear linear), but every snapshot that the user reverted away from (i.e. it was the active one but the user chose another snapshot to revert to) will be marked as a "dead end", and will be indented and hidden by default*. The white indicators on the left show a path (which is strictly linear) and indicate the currently active snapshot -- which makes implementing <span style="font-family: Courier New, Courier, monospace;">gvir_domain_snapshot_is_current</span> necessary.<br />
<br />
Currently I'm struggling with attaching some metadata so snapshots which I <i>hope </i>to solve without any additions to libvirt-glib or libvirt itself.<br />
<br />
Since my next update will probably me either during GUADEC or directly after, I strongly plan to have something demoable by then, i.e. creating, deleting, renaming and reverting should be in place even if marking snapshots as dead-end is not fully working.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
*It's actually the entire path between those 2 snapshots, but this example is easier.Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-3831610186717464732014-06-30T01:28:00.001-07:002014-06-30T06:12:47.878-07:00GSOC Report 4Since my last report, I've mainly been working on snapshot listing in libvirt-glib. This took a while to get right (and test from Vala, since that's where I'll ultimately be using it) but in the end my patches have been ACKed and will soon be pushed.<br />
Since libvirt has <a href="http://libvirt.org/remote.html">remote support</a>, listing snapshots is potentially an operation that takes long so I also implemented <span style="font-family: Courier New, Courier, monospace;">gvir_domain_fetch_snapshots_async</span> which fetches the snapshots in another thread (as suggested by teuf), i.e. we can show a loading indicator in the UI and populate the snapshots once they are available.<br />
So the only thing left on my libvirt-glib list is reverting to a snapshot and I <i>should </i>be done with it and can start with all the functionality in gnome-boxes. I've been still adding some UI to Boxes anyway (both for experimenting and for testing the libvirt-glib features I've been implementing there). For example, in my development branch, the properties page of a LibvirtMachine now contains a list of all the snapshots, sorted after creation date. The list gets asynchronously filled with snapshots rows (to test <span style="font-family: Courier New, Courier, monospace;">gvir_domain_fetch_snapshots(_async)</span>). All snapshots can be deleted (to test <span style="font-family: Courier New, Courier, monospace;">gvir_domain_snapshot_delete</span>) which can also be reverted.<br />
<br />
In the next 2 weeks I'll finish my current patches, implement <span style="font-family: Courier New, Courier, monospace;">gvir_domain_revert_to_snapshot</span> and directly test it in Boxes. I also planned to look into possible designs of the whole properties page, mainly regarding editing the snapshot title (and description?) this time.Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-81894872440837494372014-06-16T00:52:00.001-07:002014-06-16T00:52:34.010-07:00GSOC Report 3So, since the last report I've (relatively) successfully gotten the <a href="http://libvirt.org/git/?p=libvirt-glib.git;a=commit;h=75df606109ffe3ab7a0c6265c470e00621b30a6d">patches</a> for adding <span style="font-family: Courier New, Courier, monospace;">gvir_domain_snapshot_delete </span><span style="font-family: inherit;">into libvirt-glib, which will later be used in the UI of Boxes to let the user delete snapshots.</span><br />
<br />
I've used the rest of the time to try to integrate a snapshot list into the UI and general architecture. The second try worked out fairly well so the properties view of a VM now shows a "snapshots" item that, when clicked, shows a list of all the snapshots taken of that VM. Listing snapshots however also requires work on the libvirt-glib site which currently works but is not yet available upstream.<br />
<br />
So, in the next week(s) I'd like to improve the current snapshot listing UI (it's currently just a farily straight-forward <span style="font-family: Courier New, Courier, monospace;">GtkListBox</span>). Also, to really use it in production I need to get the patches to list snapshots into libvirt-glib. They already "work" so I just need to get them ready to be merged and send them to the ML (and then fix them up several times like usual).Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-83416012387316278072014-06-01T09:50:00.000-07:002014-06-01T09:50:36.050-07:00GSOC Report 2: Creating snapshots from Gnome Boxes' UI<div class="separator" style="clear: both; text-align: center;">
</div>
I've been busy preparing and sending libvirt-glib patches. <a href="https://www.redhat.com/archives/libvir-list/2014-May/msg00685.html">The first one</a> is pretty trivial and just removes some <span style="font-family: Courier New, Courier, monospace;">#if 0</span>'s from <span style="font-family: Courier New, Courier, monospace;">GVirDomainSnapshot</span>'s implementation. The code it kept from being compiled already worked fine but it was still a good opportunity to set up and use <span style="font-family: Courier New, Courier, monospace;">git send-email</span>.<br />
<br />
Since I needed to wait for the patch to be reviewed anyway, I tried to list the snapshots in Boxes' properties page. Unfortunately, it's harder than I imagined (or wished) so I'll need to revisit that later. The next few days were essentially spent with waiting for a gtk+ bug to be fixed, then tracking it down, reporting it and getting it fixed :)<br />
<br />
Later I decided to try some UI work at another point, i.e. taking snapshots in the overview via the selection mode.<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/AVvXsEjjePc5RC06QcgyQSIuU5XLqy_Ubt-MzVfsgHAbkUK1hl7l12_DqfifaIAnu-KXHw3EthJxb7jlkmQTVBN5zNgv_qwpjE5-Q0-yY7I14a-AXrA-DqsZHZeyWp2xH8kTEgnqGWcmMNsIfg-7/s1600/Screenshot+from+2014-06-01+14:23:22.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjePc5RC06QcgyQSIuU5XLqy_Ubt-MzVfsgHAbkUK1hl7l12_DqfifaIAnu-KXHw3EthJxb7jlkmQTVBN5zNgv_qwpjE5-Q0-yY7I14a-AXrA-DqsZHZeyWp2xH8kTEgnqGWcmMNsIfg-7/s1600/Screenshot+from+2014-06-01+14:23:22.png" height="162" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Taking snapshots already works</td></tr>
</tbody></table>
This was just minimal work since taking snapshots was already implemented in libvirt-glib. I played around with it a bit and taking a snapshot seems to take around 0.2 seconds (per VM of course) so it should probably be async, especially if the user tries to create multiple snapshots at once.<div>
<br /></div>
<div>
The next thing I did was sending <a href="https://www.redhat.com/archives/libvir-list/2014-May/msg01011.html">another patch</a> to the libvirt-glib mailing list, this time about deleting snapshots, i.e. implementing <span style="font-family: Courier New, Courier, monospace;">gvir_domain_snapshot_delete</span><span style="font-family: inherit;">. The first version wasn't perfect but it was quickly reviewed and I already sent another version that will hopefully get accepted next week.</span></div>
Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0tag:blogger.com,1999:blog-2453810790009937475.post-79635991847476228272014-05-18T12:33:00.005-07:002014-05-18T12:34:24.135-07:00GSOC Update1 : No cloning in Gnome Boxes and libvirt-glib work<br />
<br />
Hi!<br />
<br />
So, a lot has happened since my last update (or rather, the introduction post). First, my mentor, <a href="http://zee-nix.blogspot.de/">Zeeshan Ali</a> attended the DX Hackfest in Berlin and talked with the GNOME designers about the UI and user experience of snapshots in Boxes. He reported back to me shortly after and we also quickly discussed cloning again which got in turn canceled in favor of snapshotting (see the appropriate <a href="https://bugzilla.gnome.org/show_bug.cgi?id=710307">bug report</a>).<br />
<br />
Meanwhile, I've been working on extending libvirt-glib to support everything needed for the planned snapshot UX. Currently missing are things like listing all snapshots of a domain and deleting snapshots. I've so far implemented both of them and they seem to work in my small C test case.<br />
<br />
So, the next steps are to finalize my patches, send the to the libvirt-glib mailing list and try to get them applied, so I can start with implementing the stuff in Boxes itself. I'll start with the smallest patches and see what's wrong with them, then try the bigger ones.<br />
<br />
So, until next week!Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com1tag:blogger.com,1999:blog-2453810790009937475.post-9652720322509086942014-05-04T05:03:00.001-07:002014-05-04T05:03:40.300-07:00GSOC and Gnome Boxes<div>
<br /></div>
<div>
So, I'll be working on <a href="https://wiki.gnome.org/Apps/Boxes">Gnome Boxes</a> this summer. I'll implement support for cloning and snapshotting of Virtual Machines.</div>
<div>
This is just an introduction post but I'm currently in the process of collecting relevant information (and writing everything down) about cloning, list possible user input and find similar applications to study best practices and check out the current state-of-the-art.<br />
<br />
For further information and a more precise schedule, check out the <a href="https://wiki.gnome.org/Outreach/SummerOfCode/2014/Projects/TimmBaeder_SnapshotsClonesInBoxes">project page</a> on Gnome's wiki.</div>
Timm Bäderhttp://www.blogger.com/profile/10620420656932329901noreply@blogger.com0