Skip to main content

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

openSUSE 11.4 has reached end of Evergreen support

I have posted the following to the openSUSE lists a few moments ago:

as you probably know our initial commitment to support 11.4 within
Evergreen was until July 2014.
http://en.opensuse.org/openSUSE:Evergreen

While I was hoping that we can keep 11.4 alive for some time longer this
is currently not possible from what I would call the "core team" which
is Stefan and myself. We are too busy nowadays to be able to scan and
patch every issue we get aware of.

Thanks to you all who contributed to the success of Evergreen/11.4!

The important message is:

   openSUSE 11.4 Evergreen is not actively maintained anymore!

So if you can, we recommend to switch to openSUSE 13.1 as soon as
possible which is still planned to be an Evergreen release.


Some more details below:
The repository already got and will most likely get more updates from
package maintainers who care about 11.4 and/or their packages though.
You noticed that with recent releases of patches for the bash and NSS
issues already, BUT this is _no_ guarantee that every security issue
will be fixed.
We will accept contributions from anyone though and I will try to take
care about "my" packages.

Some numbers from 11.4 Evergreen (as far as I was able to get them easily):

Evergreen lifetime: 21 months
11.4 overall lifetime (incl. Evergreen): 41 months / 3 years 5 months

Evergreen lifetime numbers (w/o official maintenance period):
Released update source packages: 804
Unique touched source packages:  177
rough number of patches (based on incident counter): 320

Let me also quote Marcus' numbers from official maintenance lifetime:

Total updates: 723
	Security:    416
	Recommended: 306
	Optional:      1

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

Yast Code Review Guide

Yast team has finally published their official Code Review Guide.

All contributors and Yast team members are asked to use the very same simple rules for all code changes related to Yast, including Installer or just simply all code handled by thee Yast team, including, e.g., Linuxrc.

Please, see the guide here. We are looking forward your suggestions for improvements.
a silhouette of a person's head and shoulders, used as a default avatar

Building Yocto/Poky on openSUSE Factory

Since a few weeks, openSUSE Factory no longer is labeled as "openSUSE Project 13.2", but as:
seife@susi:~> lsb_release -ir
Distributor ID: openSUSE project
Release: 20140918
When trying to build the current Yocto poky release, you get the following Warning:
WARNING: Host distribution "openSUSE-project-20140918" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Now I know these warnings and have ignored those before. The list of tested distributions is hard coded in the build system configuration and in general it would be a bad idea to add not yet released versions (as 13.2) or rolling releases. And since the Factory release number changes every few days, it is clearly impossible to keep this up to date: once you have tested everything, the version has increased already. But apart from this, purely cosmetic warning, there is a really annoying consequence of the version change: the configuration cache of bitbake (the build tool used by Yocto poky/OpenEmbedded) is rebuilt on every change of the host distribution release. Updating the cache takes about 2 minutes on my machine, so doing a simple configuration check on your already built Yocto distribution once a week can get quite annoying. I looked for a solution and went for the "quick hack" route:
  • bitbake parses "lsb_release -ir"
  • I  replace "lsb_release" with a script that emits filtered output and is before the original lsb_release in $PATH
This is what I have put into ~/bin/lsb_release (the variable check is a bit of paranoia to let this only have an effect in a bitbake environment):

#!/bin/bash
if [ -z "$BB_ENV_EXTRAWHITE" -o "x$1" != "x-ir" ]; then
        exec lsb-release $@
fi
printf "Distributor ID:\topenSUSE project\nRelease:\t2014\n"

Then "chmod 755 ~/bin/lsb_release" and now the warning is
WARNING: Host distribution "openSUSE-project-2014" has not been validated...
And more important: it stays the same after updating Factory to the next release. Mission accomplished.

UPDATE: Koen Kooi noted that "Yocto" is only the umbrella project and what I'm fixing here is actually the "poky" build system that's part of the project, so I edited this post for clarity. Thanks for the hint!

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

Fix openSUSE's grub2 for Virtualization and Servers

After installing current openSUSE Factory in a VM, I found that the old GRUB option was removed from YaST2. I knew this from the mailing list, but now I actually realized that this happened. I still prefer GRUB over GRUB2, because for me it is easier to manage. But being lazy, I just went with the default.
Everything went well, until I added a customized kernel (I had installed the VM to do some kernel experiments after all). The boot menu suddenly was not very useful anymore. After selecting "advanced options", I got the following:
Well, which one of the four is now my hand-built, brand new kernel?
There is no such thing as in old GRUB where "Esc" got you out of gfxboot mode and into text mode. The command keys, like "e" for editing the current selection and "c" for a GRUB2 shell (something even more hellish than the old GRUB shell apparently) work, but you really need to know this, as there is no indication of that.

So I wanted to get rid of the gfxboot stuff. I don't need fancy, I need it usable.
Booted the VM, logged in. "zypper rm grub2-branding-openSUSE" followed by "grub2-mkconfig > /boot/grub2/grub.cfg". Much better:
But still it is in graphics mode, which I do not care about now, but once I have to deploy this stuff on something like an HP server where you can get a text console via SSH, but only if it is in plain VGA mode, I will not be amused. So boot that VM again, and look further. Finally, the solution is in /etc/default/grub: "GRUB_TERMINAL=console". The comment above says just uncommenting the original "gfxterm" setting would be enough, but it is not. After recreating the config file and rebooting, it looks quite useful:
And it is not even missing information, compared to the gfxterm version... no idea why this stuff is default.

Now that "Distribution" string in there looks completetly redundant, so getting rid of that will help, too.
Again, it is in /etc/default/grub, variable GRUB_DISTRIBUTOR. I see that in the grub2 rpm package, there is only "openSUSE" instead of  "openSUSE Factory Distribution", so it might be put into the config by the installer or something. I'll change it to just "Factory" (to distinguish between other openSUSE installations). After grub2-mkconfig, it looks almost good:
Now the important information (Kernel version) is completely visible. Much better than the original "bling bling" screen, which had no useful information at all...
Just fixing the Factory string would probably have helped also, but it still would fail the server test, so plain console will stay my favorite for now.


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

Multiple Linux Consoles in z/VM

The standard method to access z/VM is using a 3215 terminal with a terminal emulator. With linux, the x3270 package provides a free emulator for these terminals.

One of the features of z/VM is, that you can define several consoles for a guest. This is very helpful if there are problems with a guest that affect the network connectivity. With z/VM you can even define multiple consoles that allow direct logon to the running guest.

By default, only one terminal is defined for z/VM guests. To define three additional 3270 consoles on a guest at the addresses 0020-0022, use the following commands:

cp define graf 20
cp define graf 21
cp define graf 22

These consoles can also be created online from linux, provided that you got sufficient privileges on the guest. To issue cp commands from linux, use the command vmcp instead of cp.

With SLES 12, several additional steps are needed to activate these consoles.

First, the devices must be made available to the system. This a twofold process:

  1. Remove the devices from the cio ignore list with the command
  2. cio_ignore -r 0.0.0020-0.0.0022
  3. Add the devices to /boot/zipl/active_devices.txt to make this change persistent.
    # cat /boot/zipl/active_devices.txt
    ...
    0.0.0020-0.0.0022

The system automatically detects those devices. The corresponding serial devices are found below /dev/3270/tty[123]. Next, tell systemd to run a getty on these devices:

systemctl enable serial-getty@3270-tty1.service
systemctl enable serial-getty@3270-tty2.service
systemctl enable serial-getty@3270-tty3.service
systemctl start serial-getty@3270-tty1.service
systemctl start serial-getty@3270-tty2.service
systemctl start serial-getty@3270-tty3.service

To use the new consoles on a machine called LINUX065, direct the 3270 terminal emulator at z/VM. Instead of logging on as regular user, move the cursor to the COMMAND line and enter the following command:

dial linux065

To redisplay the logon prompt, you might want to press enter once.

When trying to logon to this console as root, you will find that it won’t let you. The reason for this is, that root logon is only allowed on previously defined consoles. The configuration file for this is /etc/securetty. Add the following lines to the end of this file:

3270/tty1
3270/tty2
3270/tty3

After this, you can directly logon to the linux guest without the need for z/VM credentials.

If you want to avoid the need to redefine the consoles after a logoff of the guest, add the definition to PROFILE EXEC A of the guest.

 

the avatar of Sankar P

Kernel Development Beginner

Yesterday Vignesh asked me if I could give some guidance to a college junior of mine who wants to start with Kernel programming. Being a filesystem developer on Novell for a while now, I thought I could share some things that I have learned. I wrote a somewhat long reply which I am reproducing below (with minor edits for clarity) in the hope that it may be useful to someone.

Since it was originally intended to be a mail, it is a little more verbose than a blog post. My advice is based on the situation on my college when I studied a decade ago. Things would have probably changed and the recommendations may need tweaking based on the context.

---

The most important quality that you need to inculcate if you want to do any kernel space programming is "Patience" (or persistence if you will). Though it is a good quality for any large scale project, it is a fundamental requirement for kernel programming. It is very easy to see progress and make an impact on userspace projects, but even simple changes in the kernel core will take a lot of time to get accepted, and will often require multiple rewrites. But fear not, as there are plenty of people who have conquered this mountain and it is not something to be worried about.

The starting steps will be:

1) Try to understand how to use git. We were (are ?) not taught to use a version control system in our college and it is such a fundamental thing. So start using git for college assignments and get the hang of it.

2) Start writing a lot of C programs and get experienced with pointers, memory allocation, threading. You can start implementing things like Stack, Queue, Trees etc. (whatever you study in datastructures) in a simple, thread-safe way. Do not focus on how you can visualize these datastructures but how you can effectively implement their functionality and thread safety. Use pthreads for threading. Do not use any library (like Glib) for giving you convenient datastructures (like Strings). Implement each of the things on your own. (But when you are writing code for a product, use a standard library always instead of re-inventing the wheel)

Write these C programs on Linux and compile using gcc. In our college days we were using turboc on windows and I hope things have changed. Use a linux distro (fedora, debian, openSUSE, Gentoo etc.) exclusively; Do not use Windows (at least for a while) to make yourself aware of the sysadmin, shell-scripting parts of linux, which will come in handy.

3) Grab a (any) book on Operating Systems theory and read it. The dinosaur book by Silberschatz et. al. is a good start.

4) Without hesitation buy, Robert Love's Linux Kernel Programming book. It is one of the best beginner material and start reading it parallel to the OS book. This is easier to read than the previous one and more practical. But the previous one adds more value and is more theoretical. Handle (3) and (4) in parallel without blocking on any of the other activities.

5) After you are done with (1) and (2), and feel sufficiently confident with C and pointers, grab the  linux kernel sources from http://git.kernel.org/ and try to build the sources yourself. http://kernelnewbies.org/KernelBuild should help. Learn how to install and boot with the kernel that you have built.

6.1) Subscribe to Kernel Newbies mailing list http://kernelnewbies.org/MailingList and read every mail, *even* if you do not understand most of it.

6.2) Watch: https://www.youtube.com/watch?v=LLBrBBImJt4

6.3) Subscribe to http://lwn.net RSS feeds.

After this, you should be able to fix and send any trivial, documentation, staging fixes. Once you have done this and get the hang of the process, you will know how to send patches for any parts of the kernel.

By this time, you would have found your areas of interest in kernel (filesystems, memory management, io scheduler, CPU scheduling etc.). You will then have to dig deeper in those particular areas, by:
a) subscribing to the individual mailing lists (such as fs-devel, etc.)
b) reading about the bug reports for the individual component
c) finding the literature that is relevant for your subsystem (The linux memory management book Mel Gorman, etc).

Three other non-technical things that I would recommend are:

1) Create a new email address and use that for all your open source activities. That way you do not miss any important updates from your friends.

2) Kernel programming will not give you big money in the short and medium term (at least in India). If your motivation is not excellence in engineering, but becoming popular or rich (it is not wrong btw) then you should focus on some other areas of programming (developing apps, websites, solving user problems, making meaning etc.).

It will often take months (or even years) before you make a significant contribution that is not merely a memory leak or bug fix. Be prepared for that. But since you have age, energy, time (once you get married and/or have kids you will understand) on your side, it is not that difficult.

Many people try kernel programming and then quit because they do not have the patience and perseverance. It may also happen that they have found a more interesting technology at its nascent stage (like Distributed Computing, Artificial Intelligence, Containers, NLP etc.) It is not wrong to quit midway :) Any little time spent on kernel programming will immensely benefit you as a programmer even when you are doing user space programming. This holds good for not just kernel programming but any large-code-base/system programming (like Compilers, glibc, webkit, chrome, firefox etc.)

3) Be more aware of the GSoC community in colleges around you.

All the best.

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

GSoC 2014 Experiences

Whew…Another Summer of Code done with. New experiences, Lessons learnt, a lot of code became mainstream. Overall, an excellent program. So, here are my experiences for this years program:

1.) We participated with ownCloud, Zorp and MATE desktop. I personally think participating with other organizations is a good think and fosters collaborations between the open source communities. It is something we expect to continue in future versions of the program.

2.) As opposed to previous years, all our students managed to complete the program successfully. Their work was praised by the community as a whole. A big Thank You to all the students for their awesome work, and specially to the mentors who keep the wheels rolling.

3.) Me and Manu tried to address the shortcomings of the previous year. We decided on two ‘rules’ for selecting students

– All students must be vouched by a professor (to try and solve the problem of disappearing students).
– All students must send weekly update mails to the opensuse-project mailing list.

The first proposal was met by stiff opposition by some mentors. We even discussed this on the gsoc-mentors mailing list. While well intentioned, I admit that we did not expect many things. We assumed it would be as easy to get a vouch from a professor in Europe and the US as it is to get in India We realised much later that professors don’t have the level of interaction with the students as they do here in India. We scrapped the rule. The original problem is still not solved, and though we have not been hit by it this year, we are open to suggestions on how we can address this problem.

About the weekly mails on the mailing list, I feel it was a good decision. While students may feel that it is excessive ‘red tape’ and totally unnecessary (blogs and project specific ML’s serve well enough), it does help us in the off chance that something goes wrong. We had some experiences in the last edition and felt that it was better to enforce it as a rule. Additionally, it gives community members to provide feedback and improves the visibility of the student’s work.

4.) A lot of work done for openSUSE. Projects such as TSP (Travel Support Program), OSEM (Open Source Event Manager) benefited a lot from the program.

5.) This year, Google is celebrating its 10th anniversary of the program, and having a reunion meet for the same next month. Dominik Bamberger and Artem Chernikov are going to represent openSUSE at the summit.

6.) Mentoring is a tough job and it takes a lot of the mentors time. Henne pointed out that the program is not so rewarding to a mentor, and that we could incentivize mentoring. A lot of ideas were bounced around and we hope to work on them as well.

Lastly, I will be speaking about the Google Summer of Code, and our own experiences at next month’s openSUSE Asia Summit (Yay!). So for this year, over and out 🙂

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

YAPC::EU 2014 at Sofia, Bulgaria - Day 3

Like every other conference in YAPC too day 3 was far less populated and way quieter.

R Geoffrey Avery (rGeoffrey) - Dancer: Getting to Hello World

A very nice and from the ground up talk from rGeoffrey, what i liked here is him going from the ground up showing the whole stack instead of bluntly talking about how to install run and end a ‘Hello world’ app.pl with dancer. As a small bonus he also showed the differences if you wanted to use mojolicious instead.

Carl Mäsak (masak) - GOTO statement considered awesome

An interesting talk from masak about state, flows and exotic language features.

Susanne Schmidt (Su-Shee) - MVC-templates-routes web frameworks - is that all there is?

Susanne talked about the different approaches frameworks and architectures that are less heard today after being drowned in the MVC fever. Seeing examples from smalltalk,erlang, sinatra, mojo, R (shiny) et al was highly interesting and educating.

Mark Overmeer (markov) - Digest:SHA is broken

Mark showed us how things can break in a module that is supposed to operate on bytes instead of strings (after changing to support strings) even though Perl itself has no way to differentiate between strings and bytes anyway.

Sawyer X - Plack for Fun and Profit (But Mostly Profit)

Seeing how booking.com uses plack in both development and production (with sample code!) was rather interesting, and plack seems to have become a rather nifty tool deserving a good seat in the perl ecosystem.

Upasana Shukla (upasana) - Structured exceptions in Moose

Upasana talked about structured exceptions and the challenges she faced making the transition from string exceptions to structured. She didn’t manage to win me over though with their pros, i still hate (most types of) exceptions and the Object Oriented Everything approach but it was an enjoyable and interesting talk.

Sawyer X - Day 3 Keynote - The Joy In What We Do

For this i will post he’s abstract verbatim: >“Small memories flooding our consciousness like a river of delightful experiences, carrying us through our lives, tugging at our heart, pointing us towards endless appreciation of what many fall prey to forgetting: our love of solving puzzles and our joy of transforming reality and life itself. > >This is the joy in what we do. “

This one was a keynote that deeply touched me and one i would recommend you all to watch and be reminded of the joy in what we do, and the reasons we all contribute to Free software.

Lightning talks Day 2

Being rather tired at this point i only watched one Lightning talk (and i immensely enjoyed it)

Thomas Klausner (domm) - The OAuth2 Dance

In this one OAuth2 was explained through a modern dance choreography that probably confused more than it helped (still was enjoyable and probably tons of fun for everyone :P)

The rest

The rest of the day went buy pretty quiet, the adrenaline levels having dropped with the conference closure, i passed the rest of the day relaxing and getting readyu for the returning trip home to Greece. That concludes the third and final day of the conference and here i would like to say a big thanks to all attendees and especially the organizers for making YAPC::EU 2014 such an awesome conference and a very worthwhile memory.

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

YAPC::EU 2014 at Sofia, Bulgaria - Day 2

Today was pretty much a “Devops” day for me, both by watching most of the devops track and holding conversations mostly about/with devops people.

Bradley Andersen (elohmrow) - Regex 101

This was a rather interesting talk in which Bradley went over the bare basics of regex, making an analysis and effective crash course about understanding them and starting to write sane regex. Unfortunately it was too beginner oriented for me but found it quite brilliant for someone who never saw regex before (or as some people like to say “ascii puke”).

Marian Marinov (HackMan) - Create your containers with perl

In his talk Marian, went over the tools he uses to work with containers and perl. In 16 slides, he presented the current state of containers in linux and showed what is covered/supported by perl, he then went on presenting his proposed toolkit full of utilities that combined give you a full environment to work with (in perl).

Naim Shafiyev (shafiev) - Automatization Network infrastructure

Naim, presented the issues an ISP has managing thousands of users with as many different needs and scenarios of use. The current protocols, practices, common pitfalls and especially how to avoid those and learn from previous situations. He closed the talk with some interesting future ideas.

Matt S Trout (mst) - Devops Logique

Matt presented the merits of Logic Programming and taking declarative system descriptions to a new level of abstraction, and finding ways to integrate these ideas back into more common workflows.

Denis Banovic (@bano99) - Perl in the Cloud

This was an interesting talk about running and scaling your own perl application paas on private open source cloud, albeit more dev than ops.

Lightning talks Day 2

Last but not least was the Lighting talks session. A full hour of 10 lighting talks and 30 second breaks between each talk for announcements (or ads).

Laurent Dami (dami) - Virtual tables in Perl for SQLite

Laurent talked about the upcoming Virtual table support in DBD::SQLite.

Kang-min Liu (gugod) - Introduction to Hijk

Hijk, is a very simple very small and very specialized web server (specialized in the sense that it does only one job), also has a hardly pronouncable name).

Simun Kodzoman (sime) - TableEditor

TableEditor is exactly what the name suggests, created on top of dancer and angularJS.

Mihai Pop - Trubzi.com

Brief presentation of Trubzi.com and its features (which of course is built in perl ;)

Dan Muey - I � Unicode

A basic intro to unicode and garbled text issues, Dan also gave a full version of this lighting talk in the past, watching that one is also suggested.

Upasana Shukla (upasana) - GNOME’s Outreach Program for Women

Upasana talked about her experience with GNOME’s Outreach Program for Women & how one can become a part of it.

Matt S Trout (mst) - Day 2 Keynote - State of the Velociraptor

As usual, Matt presented a recap of the previous year in the perl5 community as well how what we saw and learned can help shape both our language and community in the coming year.

The rest

I spent the rest of the conference day talking with and meeting new people. Then went off with the romanian crowd (a bunch of very cheerful,interesting and friendly people) to tour the city of sofia and later go for drinks. That very enjoyable and highly informative sofia city center tour was done by a (native) sofia citizen and also speaker in the conference, Dimitar Mitov (you can find details about his presentation in the previous post.)

And this concludes the second day of the conference.

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

YAPC::EU 2014 at Sofia, Bulgaria - Day 1

Two weeks ago, i went to Sofia, Bulgaria but due to being extremely busy with other work these posts got a little delayed. In this series of posts i will describe the 3 days of the conference.

YAPC::EU (short for “Yet Another Perl Conference::Europe”) is the annual conference of the European Perl community. This year the conference took place from August 22nd through the 24th at the Inter Expo Center (IEC). I arrived the day before the conference, just in time to have lunch and head to the pre-conference Welcoming party. The meeting took place to the “Krivoto” Beer House. in the center of sofia.

Next morning I headed with a friend to the vanue, we arrived around 9:30 where they were (still) serving breakfast, there were a few booths. There was a booth with free Coffee, snacks and a couple flavors of Tea. Another booth had traditional bulgarian breakfast, “banitsa and boza”. Banitsa is a filo pastry with cheese and eggs while boza is a fermented wheat kind of drink that is traditionally served with banitsa. During the breakfast time there was a meet and greet session for the conference attendees, a fantastic idea for newcomers both to the community and the conference itself. I didn’t have a camera with me so unless i get my hands on some photos the next sections will probably look a bit bare.

Mihai Pop - Perl Secret

Perl Secret was a funny and really interesting talk from Mihai Pop about perl secret operators and their representation as minions. I like minions nearly as much as i like the secret operators so i attended the talk which paid in full. I had a really enjoyable time hearing about operators i used, remembered or never even heard of, all together with adorable minions!

Mark Overmeer (Markov) - Translation with context

This was a very interesting talk about how to use gettext and perl to have context enabled translations. First he described us how the gettext framework works and how the PO and MO tables are being created. He then went on talking about “Log::Report::Translate::Context” which is a module that using the “msgctxt” field of standard PO-files it adds information to msgids in order to make context sensitive translations possible.

Thomas Klausner (domm) - Code i am proud of

Next came Thomas Klausner who presented as with a very interesting conglomerate of hacks he did last year. The talk included (but was not limited to) Consistent Random Passwords, MOPfuscation, ZeroBlog (which is his current blog’s backend) and a Short and magic $elf (loved that one, was clever :p).

Curtis Poe (Ovid) - How to fake a database design

Ovid’s talk was very good and with lots of tips for you if you don’t want to enrage your DBA. He opened the talk with a series of explanations and definitions of simple (or not so simple) Database design concepts. Then in a small Q & A like session he went on telling us about DO’s and DON’Ts of Database design.

Ervin Ruci (eruci) - A geo search engine in a few lines of perl

Ervin told us about the mod_perl based codebase of a perl module he wrote a few years back. It is the backend powering a Forward and Reverse Geocoding website covering the U.S.A and Canada. He then went on describing how it works and usage examples.

Sue Spence (virtualsue) - Get Me to the Pub Please

In this talk, Sue told us about the local runners group she likes to participate in and the trouble she had co-ordinating with them about when the meetups are, the meeting point, finishing point, the trace of the running etc. She then went on describing what she set up (calendaring, notifications, etc.) and how perl helped her in that (plus the modules she used).

Lightning talks Day 1

Last but not least was the Lighting talks session. A full hour of 10 lighting talks and 30 second breaks between each talk for announcements (or ads). At this point i was quite tired so i only write about only 2 of the 10 lighting talks i remember better.

Dimitar Mitov - Perl Executing Browser

I remember this talk better because i discovered the project a little while before attending YAPC and was quite interested in it. Dimitar opened the talk by telling us why he needed such a tool and the reasons that led him to choose QT as the toolkit for it. In short his browser allows you to have a nice local web interface for your CGI scripts without using a full blown web server.

Alex-P. Natsios - OS-autoinst: Testing with Perl and openCV

And my very own lighting talk about the OpenQA project. OpenQA is the framework used at openSUSE to automatically test the distibution and release media. openQA is almost entirely in Perl (tests included). Due to the limited timeframe i had i didn’t really go deep into how it all works. I gave a fast overview of what it is and how we use it in openSUSE then devoted the rest of my time to explaining how testing works. Finally i showed a real world example with the test for xterm (while explaining its code).

The rest

I spent the rest of the day talking with and meeting new people. I also met old friends and people i had only talked to online (via IRC).

And this concludes the first day of the conference.