Accéder au contenu principal

Articles

Affichage des articles du 2015

Games 3.18.0 released

Do you like video games but don't like how inconsistent and annoying it can be to enjoy them on a personal computer? Then read on, I have something for you! And if you're not such a gamer, you'll probably learn fun things in the article nonetheless.In this article I'll present you the new GNOME application called Games, whose first preview version (labelled 3.18.0) just came out.https://wiki.gnome.org/Apps/Games Your games libraryVideo games on personal computers exist in lots of shapes and formats, each of these being accessible in very different ways:games installed from Software are found alongside the applications,Steam games are listed in the Steam client,video game consoles and retro computers games are handled as ROM files, disk images or archives, each one playable with a different application depending on the original platform,some game engines have their games distributed as packages that have to be run with the correct engine, such as LÖVE or the Doom engine,…

GUADEC 2015 was awesome!

I went to GUADEC 2015 which was help in Gothenburg between friday 08/07 and wednesday 08/12, here is what I did there.Deserved thanksFirst of all, I would like to sincerely thank the organizers of this GUADEC, they made an amazing job! =)I also would like to thanks the GNOME Foundation, the GNOME Travel Committee and the persons volunteering to work for this committee as I wouldn't have been able to attend the conference without their sponsorship. VolunteeringI volunteered to help during this GUADEC and it was a great experience. I only had few work to do as there was a ton of volunteers, all I did is to help cleaning the rooms and to be in charge of presenting the speaker, filming its talk and give him a gift for two talks on sunday.Being able to see the Beamer theme I wrote used was quite pleasing too. =)The core daysOn FridayAlexander Larsson's talk on xdg-app got me really excited about this big shift the Linux desktop is taking,Emmanuele Bassi's talk on GSK showed us h…

Adding a list view to Boxes

A list view was a requested feature for Boxes, I decided to commit myself to implement this during this GSoC.March: exploring the ideaI started working on adding a list view to Boxes in march 2015. By that time, the expected columns for the list view where:the thumbnail;the machine's name;a system monitor;the machine's IP;the OS' icon;an icon to display show a favorite machine. Implementing such a view using libgd's MainView (the same widget responsible of the icon view) required me:to learn how to write a custom GtkCellRenderer for the system monitor;to find how to get a machine's IP adress;to find how to OS icons are retrieved in Boxes.Unfortunately, I had to pause the implementation of this feature to focus on my studies.July 6–12: designing the list viewI joined a chat on Google Hangout where Alan Day, Jakub Steiner and Zeeshan Ali on july 8th. During this talk, Zeeshan stated its desire to stop using libgd—suggesting to use GtkFlowBox and GtkListBox to implemen…

Writing a custom spinner

What are spinnersA spinner is a widget in charge of displaying some indefinite amount of activity via a spinning circle-ish image. They use de "spinner" style class and are visible when the "active" state flag is set.Turning a widget into a spinnerTurning a widget into a spinner is pretty simple, just add the "spinner" style class to the widget's style context! But now your widget is probably invisible, and that's normal: as said just before, spinners are drawn only if they have the "active" state flag on, just set your widget's state flags and you're done!Now, depending on the widget you make spin you may have very different results. If your widget is a GtkImage, it will start spinning as if it was a spinner itself, funky results (and vomit) guaranteed! All the other widgets I tested (GtkLabel, GtkBox, …) don't change (they are visible and they don't spin).If you want to render a spinner on an existing widget, you'll…

See you in Gothenburg!

I'm glad to announce that I'm going to the 2015 edition of GUADEC!I'm delighted to be able to attend GUADEC for the second time, as my first experience in Strasbourg was extremely enriching. I hope I'll see lots of known and new faces. =) As an intern, I'll give a lightning talk about what I've done so far for GNOME Boxes.I would like to warmly thanks thanks the GNOME foundation for sponsoring by travel, especially the donors and the GUADEC team and the travel committee. It will be the first time I go to Sweden, I'm sure the trip will be fun.Vi ses i Göteborg!

GUADEC 2015 get its Beamer template!

Lasse and I spent some time recently to produce a Beamer template for GUADEC 2015. You can find it here: github.com/sils1297/guadec-presentation-templates. You can use it with Pandoc or directly with LaTeX. Example are shipped too:2015/presentation.md is a Pandoc example, build it with make pandoc to produce 2015/presentation.pdf;2015/guadec-example.tex is a LaTeX example, build it with make tex to produce 2015/guadec-example.pdf. I hope you'll enjoy it, feedback is welcome and if you have any problem don't hesitate to contact me (Kekun) or Lasse (sils) GIMPNet #guadec on GIMPNet.

Monster and Naoki Urasawa

MonsterThanks to summer granting me some free time, I've finally been able to complete the Naoki Urasawa's Monster manga series. If you don't know Monster, it's a psychological thriller telling the story of Dr. Kenzō Tenma, a young Japanese neurosurgeon working in Düsseldorf, who decided to save the life of the young Johan Liebert rather than the the one of the mayor the city who arrived at the hospital roughly later. His life then changed when a series of murders happened in the hospital, all of persons whose death would improve the hero's career, making him the prime suspect of these cases. But it turns out that the little boy he saved may not be innocent to this cases… This very well paced story—full of thrills and mystery and served on a background of dreadful psychological experiments—asks lots of questions about the price of life, the right to choose which life to save, the good, the bad, humanity, and ultimately, the price of death. All of that is very well pr…

Boxes' thumbnails overhaul

I recently spent quite some time reworking the overall look of Boxes' machine thumbnails. Here is the result. Stopped boxesUp until now, Boxes' stopped machines were represented by a black box. It was nice as it represented the idea of a shut down screen, but it was pretty hard to differentiate a stopped machine from a running one displaying a black screen. This was stated in bug #730258 where Jimmac suggested to follow this design where thumbnails are draw as gray frames with a medium sized emblem in their center, using the system-shutdown-symbolic icon to suggest the stopped state.Updating the other thumbnailsMachines under construction used to simply display their thumbnail with a spinner on top. This doesn't change but stopped machines being constructed now display their spinner in a frame, to be consistent with the new thumbnail for stopped machines.The default thumbnail for machines was a big computer-symbolic icon. It have been changed to the new gray frame style, ke…

Extracting Boxes' wizard's pages

A few days ago, Zeeshan suggested me to extract Boxes' wizard's pages out of the Wizard class and to make them full fledged widgets/classes. This idea is very welcome as it would move a lot of complexity out of the Wizard class (as it is currently implementing most of the pages) and, in the long run, make its port to GtkAssistant easier.I spent the last few days playing with the pages, discovering how they are implemented and extracting some of them.The current state of Boxes' installation wizardHere is the wizard's page flow as presented to the user:The wizard is currently implemented with such a widget hierarchy:the WizardWindow classthe WizardToolbar classthe Wizard class, a stack of pagesthe WizardSource classthe source selection pagethe URL entry pagethe preparation pagethe setup pagethe review pagethe file chooser pagethe customization pageThe wizard has three layers of pages, most of them behaving slightly differently: the WizardSource class is composed of the s…

Playing with GtkAssistant

I decided to spend some time today to play with GtkAssistant, more precisely, I tried to build a mock installation wizard mimicking Boxes' one in order to test how I could adapt its behaviour to make it GtkAssistant ready.Overall, I enjoyed using GtkAssistant, it is a quite well thought out widget offering a lot of potential for a small API.But despite how good GtkAssistant is, I encountered problems adapting it to my need. Here follows a list of what bogged me down.A sequence of pagesGtkAssistant is great at implementing a sequence of pages, unfortunately, Boxes' wizard is more like a graph of pages.Such a configuration is clearly out of GtkAssistant's scope and it can easily be solved by arranging the pages as a sequence and setting a custom "forward" function, so it's not that much of a problem.Action areaGtkAssistant allows you to mark a page as custom, which will show no button in the action area when visiting this page. You can then add buttons to the a…

Boxes' hardening sprint: two weeks in

Finishing my 4th year of CS studiesI spent the last two weeks working hard on the report and the presentation of the project my colleagues and I worked on all the semester long: creating the Stibbons multi-agent system programming language and development environment.I am very proud of what we accomplished and I’ll probably present it to you in the upcoming weeks. =)Planning the port of Boxes' installation wizard to GtkAssistantAll this work unfortunately let me little time to work on Boxes, but I nonetheless took some time to look at how its installation wizard is implemented and planned how to port it to GtkAssistant.Boxes' installation wizardCurrently, the wizard is ordered that way: WizardWindowWizardToolbar: the toolbar containing the navigation buttonsWizard: the stack of pagesMost of the wizard’s intelligence seems to lie in Wizard and its pages, I’ll have to dig further into Boxes' code in order to fully understand how the wizard work.GtkAssistantA GtkAssistant is…