Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Some post-processing of oSC13

Well, oSC13 has come and gone and what a great event to look back on. Starting with the pre-registration party on Thursday night all the way to the end on Monday the program was jam packed with interesting talks and workshops. All sessions were well attended and some were hopelessly over flowing.

The millions of thank you’s directed toward Kostas and Stella, the driving forces for the organization, are probably not enough. In addition to having a great event we also had the opportunity to learn a lot about what it takes to pull off oSC. Until oSC13 a lot of knowledge about the oSC organization was locked up within SUSE as the primary driving force of the conference organization in previous years. The “locking up” of information was just something that happened due to the nature of the organization of previous conferences. Information inside companies just gets lost, that’s the nature of the beast and this is certainly not intentional. Additionally, at least for me, having the community organized event this year made me think more about what it takes to pull off the organization. I guess with SUSE standing behind the event not just as a sponsor, but also as the lead organizer, it somewhat made the individuals that worked on the organization anonymous. We certainly had great conferences previously and many of us like to think back and reminisce about previous events when we meet. Another point is probably that one thinks that many more resources are brought to bare when a company is behind the organization of an event, although that is not necessarily the case.

Having the community drive the organization for oSC13 is just a completely different feeling, and I think I am not alone with this sentiment. The people that were involved in the organization of previous conferences were always happy to help and share information, and some were intimately involved in pulling things together, thank you.

The knowledge accumulated will certainly spread through the community and a number of meetings and many discussions at oSC13 started this process already. During the live project meeting, a.k.a. Town Hall meeting, it was my pleasure to announce that oSC14 will take place in Dubrovnik in April 2014. Svebor, the lead for the oSC14 organization endured a number of brain dumps and got bombarded with ideas and suggestions.

This conference paves the way for oSC to grow as a community organized event and I know that Stella and Kostas had to swallow more lumps, as the prime movers, than others in the future will have to. Thank you.

With somewhere around 250 attendees we all can be very proud of the first community organized oSC. For impressions check out some pictures of oSC13 and the video recordings of the sessions. Now is also a good time to seriously start thinking about your travel plans for April 2014. See you in Dubrovnik

the avatar of Andres Silva

Chameleon Brand Image

All of you who read my blog and communicates with me through the openSUSE channels knows that I am passionate about the chameleon image that comes along with openSUSE. It is one of its distinctive images and it is also part of its logo.

In former releases and under former design teams the image of this chameleon was also present. Graphically, this set the striking difference, in my mind, between openSUSE and other distributions. Most distributions rely on simply made logos from SVG. While these other logos and brands are generally well-designed and get across with their point, they tend to lack a reality. By that I mean a real, natural counterpart that can also be included in their marketing image.

Take for example Apple design. When they decided to brand their OS releases, they chose the names of wild felines such as cheetah, puma, jaguar, panther, tiger, lion, and so on. If you take their marketing strategy over the course of these releases, I believe, they realized that there was much more visual power in using real life images rather than keeping computer generated graphics as their face.



That was up to the release of Leopard. Then there came a change.






Although openSUSE is not Apple and our design team is not quite as sizable, it is important to remember that we too have an image based on a very striking reptile. The chameleon has many variants in its family and it's natural image "rawness" has always made an impact on me. My suggestion is no that we name our releases after different chameleon species, that would make our names run out in just a couple of years given the many releases that we produce. However, if something is to be learned from Apple's and other companies' logo examples such as CORNING's Gorilla Glass

is that natural-based images make a strong impression and makes people endear themselves with a very positive and intuitive way of recognizing a brand. openSUSE has this potential right at home through its chameleon logo. Although for general purposes the chameleon is a vector-based graphic embedded into the official project's logo, there are many other creative ways that you can use this and make an impression.

A couple of weeks ago I noticed a request in the mailing list asking to prepare a graphic that would be included in a magazine showcasing the openSUSE conference. I decided to take on the challenge and produce something striking, eye-drawing and relevant. With much thought I decided to find a simple, yet beautiful graphic to promote openSUSE as a brand. This is what came out.


I really enjoyed that design. It brings back that natural beauty of our logo, it promotes our brand, it shows versatility, and it draws attention. I created a few other iterations in case there are more opportunities to bring and integrate our chameleon into the rest of our brand design.





the avatar of Stephen Shaw
a silhouette of a person's head and shoulders, used as a default avatar

Online Enabling new DASD from a Linux LPAR on System z

When running a mainframe, there are reasons why you you want to add new control units and DASD disk devices. Assuming that you already added the hardware configuration to the system, you will find that a still running LPAR with linux will just not see any of the changes.

For example, if you have a configuration like the following in the IO configuration:

 CNTLUNIT CUNUMBR=2700,PATH=((CSS(0),41,43,4A,4D,50,51),               *
               UNITADD=((00,256)),CUADD=6,UNIT=2107
 IODEVICE ADDRESS=(2700,224),CUNUMBR=(2700),STADET=Y,UNIT=3390B,       *
               UNITADD=00
 IODEVICE ADDRESS=(27E0,32),CUNUMBR=(2700),STADET=Y,UNIT=3390A,        *
               UNITADD=E0

The configuration on DS8000 with dscli would look like the following:

dscli> lslcu
Date/Time: July 17, 2013 2:50:45 PM CEST IBM DSCLI Version: 5.4.36.107 DS: IBM.XXXX-XXXXXXX
ID Group addrgrp confgvols subsys conbasetype
=============================================
...
06     0 0              36 0x0004 3990-6
...

Several disks and alias devices have been configured already on logical control unit 6 of DS8000. The alias devices are needed for the HyperPAV feature of the DS8000. :

dscli> lsckdvol -lcu 06
Date/Time: July 17, 2013 2:56:25 PM CEST IBM DSCLI Version: 5.4.36.107 DS: IBM.XXXX-XXXXXXX
Name ID   accstate datastate configstate deviceMTM voltype   orgbvols extpool cap (cyl)
=======================================================================================
-    0600 Online   Normal    Normal      3390-9    CKD Base  -        P12         27825
-    0601 Online   Normal    Normal      3390-9    CKD Base  -        P14         27825
-    0602 Online   Normal    Normal      3390-3    CKD Base  -        P12          3339
-    0603 Online   Normal    Normal      3390-3    CKD Base  -        P14          3339
-    0604 Online   Normal    Normal      3390-9    CKD Base  -        P12         10017
-    06E0 -        -         -           -         CKD Alias 0600     -               0
...
-    06FF -        -         -           -         CKD Alias 0600     -               0

When using z/VM, the only thing to be done when you want to activate the devices is a vary online 2700-2704 27E0-27FF. However from a linux in LPAR mode, there is no such command available. Even after activating the devices from z/VM they would not be visible inside the linux LPAR. To check this, you can use the command lscss | grep '0\.0\.2700'.

The solution to make the devices available without rebooting the linux is to vary online one of the chpids that are already online.  If you look at the IOCDS, it shows that there are six chpids online: 41,43,4A,4D,50,51. In our case, these are just shared for all DASD devices and are also used for other device ranges. Thus they are just online. This can be seen with the following command:

# lscss | grep 0.0.2600
0.0.2600 0.0.01e6 3390/0c 3990/e9 fc fc ff 41434a4d 50510000

The numbers at the end just represent the use chipids.  To activate the chpid with number 41, use the following command:

# chchp -v 1 41
Vary online 0.41... done.

After this, the available disks can be checked again:

# lscss | grep '0\.0\.27'
0.0.2700 0.0.02e6 3390/0c 3990/e9 fc fc 2b 41434a4d 50510000
0.0.2701 0.0.02e7 3390/0c 3990/e9 fc fc 13 41434a4d 50510000
0.0.2702 0.0.02e8 3390/0a 3990/e9 fc fc 07 41434a4d 50510000
0.0.2703 0.0.02e9 3390/0a 3990/e9 fc fc 83 41434a4d 50510000
0.0.2704 0.0.02ea 3390/0c 3990/e9 fc fc 43 41434a4d 50510000

Now, the disks on control unit 2700 are also visible on this LPAR. From that point, it is easy to just configure the disks for linux with yast2 dasd or the commandline utility dasd_configure.

a silhouette of a person's head and shoulders, used as a default avatar

KDE releases 4.11 RC1, and openSUSE packages follow!

The latest release from KDE moved from beta to RC stage, thus finding and reporting bugs is more important that ever. At the same time, the distribution packaging teams are also working in polishing their packages.

As far as openSUSE is concerned (not dissing other distros, just mentioning the one I’m involved in ;), you can kill two birds with one stone by installing the packages provided in the KDE:Distro:Factory repository. There are two kinds of issuses you need to report:

  • Issues in the software (bugs, crashes, unexpected behaviors, regressions…): KDE would like very much your feedback, so please submit detailed bug reports to bugs.kde.org;
  • Issues in the packaging (conflicts, missing files, improper installation…): in this case you may want to notify the openSUSE KDE team by filing a ticket to Novell’s Bugzilla.

You can also discuss about the upcoming release on the KDE Community Forums.

As this is not yet a stable release, this usually goes without saying, but I’m repeating it anyway: do not use these packages in production systems, install them only if you want to help testing. For everyone else, it’s much better to wait for the official release, which will also be part of the upcoming openSUSE 13.1.

That’s all. So, what are you waiting for? Let’s get testing done!

a silhouette of a person's head and shoulders, used as a default avatar

Organizing oSC13 - 2 days before(Zero hour)


Well we are practically on day zero. All the core volunteers are now here, and final set up and testing is doing and every hour counts. Huge efforts are becoming from all people around and all people working in the same spot make this one huge hackfest, saving precious time. Preparation for this conference was huge and this is 'show time' for us. The dark spot here is that no matter how we tried, no matter how personal time we dedicated and no matter how tired we are, nothing of that will actually matter if we do not deliver the best  openSUSE conference done.
 To be honest this whole thing surely did not started how I wanted and did not continued as I wanted. I hoped for more help from people, and this is 'my' people. Unfortunately many people were not sure for us taking the conference and many people that said will help were just vanished from the face of the earth after we finally got the conference.
On the other hand help came from unexpected places, faith to the broader community paid off and Stella and Henne turned out to have super powers. I am a very lucky guy I'm telling you...

I don't want to jinx it but if this conference goes the way it should then this will be a great 'fuck off' to all those people. This years oSC team finally made it and delivered what promised to the community.

I am not sure if I will have another actual post until the conference starts(I am planning to post some preparation photos along with comments :P ) so for those coming to this years openSUSE Conference, make things that matter, have a lot of fun and drink like there is no tommorow.
For those who won't come all I will say is that you will lose an once in a life time experience.

a silhouette of a person's head and shoulders, used as a default avatar

Are you enjoying your Icecream?

A bug has crept into the Icecream 1.0 release that makes the daemon crash on its first start after boot if /var/run is cleared (e.g. it's tmpfs-mounted by systemd). This in practice means that on such systems Icecream does not work unless started manually. So in case your compiles have felt tad a bit slower recently, upgrade to the just released version 1.0.1. If you run openSUSE, an online update with the fix has already been published.

a silhouette of a person's head and shoulders, used as a default avatar

Clang's AST dump AKA 'WTH is the compiler doing???'

It's no secret that I use the Clang compiler for development. Although GCC is still somewhat better when things like the performance of the resulting code matter, there are other features that matter more during development. And although again competition helps (it's not difficult to guess where the inspiration for the new error reporting in 4.8 comes from), there are features where I expect it'd be hard for GCC to match Clang. The capabilities and ease of writing Clang plugins is one thing, but there are more hidden secrets, like the AST dump.

If Clang is invoked also with -Xclang -ast-dump options, it'll dump its internal representation of the compiled source. Which can be pretty useful when the source code doesn't actually mean what one expects, or if there's something unexpected from elsewhere interfering. Consider the following (simple, for clarity) example:

#include <iostream>
using namespace std;

class A
    {
    };

class B
    {
    public:
        operator A() const { return A(); }
    };

class C
    : public B
    {
    };

void foo( const A& )
    {
    cout << "A" << endl;
    }

void foo( B& )
    {
    cout << "B" << endl;
    }

int main()
    {
    foo( C());
    } 


Looking only at class C, it may perhaps come as a surprise to some that this prints "A" and not "B". And overlooking the missing const or not knowing that it will prevent passing the temporary to the function certainly helps with the surprise, but even if not, still, so what is actually going on? With larger codebase, that can be a lot of time to find out. But finding out what the compiler thinks about the code can help:

$ clang++ -Wall a.cpp -Xclang -ast-dump
...
 `-FunctionDecl 0x90ffb90 <line:29:1, line:32:5> main 'int (void)'
  `-CompoundStmt 0x9100078 <line:30:5, line:32:5>
    `-CallExpr 0x90fffb8 <line:31:5, col:13> 'void'
      |-ImplicitCastExpr 0x90fffa8 <col:5> 'void (*)(const class A &)' <FunctionToPointerDecay>
      | `-DeclRefExpr 0x90fff74 <col:5> 'void (const class A &)' lvalue Function 0x90fec80 'foo' 'void (const class A &)'
      `-MaterializeTemporaryExpr 0x9100068 <col:10, col:12> 'const class A' lvalue
        `-ImplicitCastExpr 0x9100058 <col:10, col:12> 'const class A' <NoOp>
          `-ImplicitCastExpr 0x9100048 <col:10, col:12> 'class A' <UserDefinedConversion>
            `-CXXMemberCallExpr 0x9100028 <col:10, col:12> 'class A'
              `-MemberExpr 0x9100008 <col:10, col:12> '<bound member function type>' .operator A 0x90fe740
                `-ImplicitCastExpr 0x90ffff8 <col:10, col:12> 'const class B' <UncheckedDerivedToBase (B)>
                  `-CXXTemporaryObjectExpr 0x90ffdd8 <col:10, col:12> 'class C' 'void (void)' zeroing


Knowing a bit about how compilers work helps a lot, but even without it this is quite simple to read. From bottom to up, there's a temporary object of class C created and it's cast to its base class B. That's the expected part, the unexpected part is the 3 AST nodes up, which show that the object is converted to class A by a user defined conversion using operator A(). Which, as the rest of this part of the AST dump shows, results in calling foo( const A& ). Mystery solved.

(Fun trivia: I once helped a GCC developer to disentangle a problem in a complex C++ testsuite using this. But don't tell anyone ;) . )



a silhouette of a person's head and shoulders, used as a default avatar

Organizing oSC13 - 13 days before(A morning inside my head)


Less than two weeks left. OMG it's getting closer.

Here in Thessaloniki it almost started. As in 3 days from now we will be at the conference testing the network, start setting up the rooms and getting the whole venue ready to accept the 350 to 500 guests and the 50+ volunteers. Not much things are left in their fate those last days. So far we were on a marathon, now we are going on a sprint... After the marathon...

Of course have in mind just in case you decide to organize a conference that luck is not on your side amazing things can go wrong and affect your work. Like, let's see... Having a network upgrade in your neighbor and have no internet for the next 5 days...Without a previous warning from your provider... What are the chances for that?  Luckily I have a great girlfriend who lets me stay at her place and use her internet.

Waiting for the conference to start made me think how I got here. I mean it is interesting how I got into this. No I am not gong to tell you that story, at least not tonight, you will be bored to death, or not :D

The last couple of days I am on to checklists. Me along with Stella and Henne are checking again and again what was done,what was not done and what is left behind and needs a boosting. The thing is that things are going better than even I originally have calculated. Having people like Carlos, Juergen and Jos onto doing things is simply a miracle producing machine. Let's hope that by the end of the Conference they will still want to talk to me :P

Today I remembered that I have a presentation about oSC13 in oSC13. I would like to find some time and prepare that at some point but my guess is that this will be done just a few hours before the talk. Don't get me wrong, I love making presentations, I just hate preparing them. The good thing with that particular presentation is that I know the talk, I just need the slides for it,mmmm

In a while I have a meeting, with 13 days to go I calculate than I have less than 10 meetings to go before the conference, yeaaaaaaah.

a silhouette of a person's head and shoulders, used as a default avatar

Working in openSUSE Team

Some of you probably noticed I work at SUSE for a while. I was working on SLE maintenance and thus it was bit hidden work, not really in touch with upstream and other projects. This all changes starting this week because 1.7. I changed my post so I will be one of the few working on openSUSE.

I have high hopes for what we can achieve in the team and I really look forward on all the coding and fixing possibilities ahead. Currently I am mostly focusing on the great beach party^W^Wconference where I will be giving few talks and handle creative autootols workshop. Writing those presentations is quite task, specially for the workshop, because I am used for 90 min lectures and this one will be even 30 minutes longer and I really want to have it interesting and educational.

After this party there is even more fun ahead for me. I will be focusing my breaking skills on openSUSE:Factory trying to improve the next release so I could happily keep using it on my and my family laptops.

As an endnote please do not expect from me to magically change all the bugs you might have on openSUSE, tho I will try my best to have it working well. :-)