/srv/irclogs.ubuntu.com/2010/07/07/#kubuntu-devel.txt

ScottK\o/ https://launchpad.net/ubuntu/+source/kde4libs/4:4.4.90-0ubuntu301:41
lex79good :)01:43
macothat thing with akonadi needing to be manually started before kontact or kontact needing to be started twice... is that fixed in the ppa 4.4.3 or anything?02:04
* ScottK thought it was "fixed" in an SRU already.02:05
ScottKI say "fixed" because the "fix" was to make the timeout longer.02:05
ScottKNCommander: There are new uploads of python-qt4 and sip4-qt3 sitting on mentors.debian.net.  Would you please have a look at them.02:15
=== kubotu_ is now known as kubotu
lontraany chance of seeing the latest qt-creator packaged for lucid??02:35
* v waves05:07
macoyay!05:08
macofigured out what was making my tray grow to ginormousness05:08
macoit's pidgin's fault05:08
vhrm05:09
macowhen pidgin runs, the tray gets big blank gaps that grow and grow til chunks of the panel get cut off due to lack of space05:09
macowhen i quit pidgin, the tray snaps back to the proper size05:09
vI never really liked pidgin05:10
=== v is now known as vorian
=== freeflyi1g is now known as freeflying
removidohi08:14
removidoits today right? tutorial day?08:15
removidoanybody08:15
removidobye08:16
KenDDWRThi08:58
KenDDWRTi need some help with mounting a usb drive via ethernet on DDWRT router08:59
RiddellKenDDWRT: support in #kubuntu or #ubuntu09:00
KenDDWRTcool thanks dude09:01
=== KenDDWRT is now known as KenWRT54G
Riddellfabo: how come I don't see phonon-vlc here? http://packages.debian.org/search?suite=stable&section=all&arch=any&searchon=sourcenames&keywords=phonon09:26
Riddellah hah, there it is http://packages.qa.debian.org/p/phonon-backend-vlc.html09:26
Riddellwell that crashes horribly on anything that uses it09:31
Riddellneeds vlc-nox installed09:38
Riddelldragon crashes on exit with vlc-plugin-pulse installed though :(09:39
Riddelland videos have the curious effect of being rendered in ascii art09:41
Riddellso needs to depend on vlc not vlc-nox unless we are happy with ascii art09:43
Riddelluploaded to ubuntu with vlc dependency added09:45
Riddelldebfx: ^^09:45
nigelbRiddell: I found out why I got plagued with black screen yesterday09:49
nigelbMy display driver was an Intel 8xx :/09:50
faboRiddell: I didn't noticed as I'm usiing vlc as my main mediaplayer09:51
=== ulysses_ is now known as ulysses
Riddellnigelb: that's bad?09:52
Riddellfabo: do you use pulseaudio and vlc-plugin-pulse?09:52
nigelbRiddell: yep.  Its a known issue because of KMS.  I didn't understand the reason, but the fix would take longer than 10 minutes, and it was already 3:30 am, so I gave for temporarily :)09:53
nigelb*gave up09:53
valoriehey nigelb, good to see you here09:54
valorieI knew you would come into the light!09:54
valorie:-)09:54
faboRiddell: no, I don't use PA nor  vlc-plugin-pulse09:55
nigelbvalorie: heh ;)09:56
=== Riddell changed the topic of #kubuntu-devel to: Alpha 2 released! | https://wiki.kubuntu.org/Kubuntu/Todo | https://wiki.kubuntu.org/KubuntuTutorialsDay Today 18:00UTC
kwwiianyone know who made the plymouth splash image? the logo looks a bit off-centered10:32
Riddellhi kwwii, that was nixternal I think10:33
kwwiihi Riddell, thanks!10:33
NCommanderScottK: who uploaded them?10:33
Riddellkwwii: it's just .png files in kubuntu-default-settings so it should be easy to fix10:34
Riddellkwwii: looking at bug 580571 ?10:34
ubottuLaunchpad bug 580571 in kubuntu-default-settings (Ubuntu) "Kubuntu plymouth logo text is centered with gears sign factored into total width, placing 'kubuntu' text off-center" [Low,Triaged] https://launchpad.net/bugs/58057110:34
kwwiiRiddell: yes, vish wants to help :-)10:56
kwwiiRiddell, vish: have you two met?10:58
vishhi.10:58
Quintasan\o10:59
Quintasankwwii: new recruit? :D10:59
vishso I was looking at Bug 580571 , and was wondering why the logo was misaligned...10:59
ubottuLaunchpad bug 580571 in kubuntu-default-settings (Ubuntu) "Kubuntu plymouth logo text is centered with gears sign factored into total width, placing 'kubuntu' text off-center" [Low,Triaged] https://launchpad.net/bugs/58057110:59
vishQuintasan: lol , papercuts already has me tied up :D11:00
Quintasan:O11:00
QuintasanThat's good11:00
Quintasan:P11:00
vishto me it just seems like an oversight than a conscious choice.. probably nixternal might know more :)11:01
QuintasanI was wondering, can't we use SVG there?11:02
kwwiiQuintasan: hehe, it's mr papercuts :p11:02
vishQuintasan: on the other hand , papercuts can sure benefit from a kubuntu helping hand ;)  https://bugs.launchpad.net/hundredpapercuts/+bugs?field.tag=kde :)11:02
QuintasanPlymouth theme in 1920x1080 looks like crap11:02
vishkwwii: that sounds like the gingerbread man! ;p11:04
acemo18:00 UTC is 20:00 GMT+1 (holland) right?11:04
acemoI don't want to miss the tutorials day for having my time wrong11:05
Quintasanacemo: date -u11:05
acemodate -u11:05
acemodoh11:05
acemothanks :)11:06
kwwiivish: I am sure you taste just as spicy :D11:06
Quintasanacemo: np, I just dobule checked it too :P11:07
vish;)11:08
acemowill there be any (k)ubuntu specific things in the Introduction to Qt Quick and QML, Start Coding Qt or Beastie Hunting? I'm using archlinux atm but i still do have a free partition so i could install kubuntu if needed11:08
Riddellhi vish 11:10
visho/11:10
Riddellvish: want to fix it?11:10
Riddellvish: bzr branch lp:~kubuntu-members/kubuntu-default-settings/ubuntu/11:11
Riddellcd  kubuntu-default-settings/lib/plymouth/themes/kubuntu-logo11:11
Riddelledit the files11:11
vishRiddell: wanted to check why it was like currently ..11:11
vishlike that*11:11
Riddellvish: I doubt it's a concious decision, nixternal isn't an artist11:11
QuintasanRiddell: Was there any discussion about branding in Kubuntu? I can't remember anything.11:14
Quintasansheytan: \o11:14
sheytanQuintasan hi ;)11:15
Quintasanapachelogger: ping11:16
RiddellQuintasan: discussion about what aspect?11:17
QuintasanRiddell: do we want it and who will do that11:17
Riddellacemo: no it should be distro neutral I expect11:17
Riddellacemo: just get the binary package of qtcreator, released versions aren't new enough11:17
Quintasanacemo: ftp://ftp.qt.nokia.com/qtcreator/snapshots/latest11:19
Quintasanacemo: just in case :P11:19
acemoRiddell: am getting qt-creator 2.0 and qt4.7 from AUR (sort of ppa) :)11:19
acemoOhh... right.. I already had qt-creator 2.011:22
acemoBtw, did any of you knew that when you run kubuntu inside virtualbox on a windows7 computer, you compile faster as directly in windows7? we noticed this with mingw, qt-creator 1.3 and qt 4.611:25
Riddellacemo: qt-creator 2.0 isn't good enough11:35
Riddellneeds to be those binary packages11:35
acemoRiddell: qt 4.7 beta1 is good enough?11:41
Riddellacemo: doesn't matter, qt-creator binaries come with their own Qt11:45
acemoRiddell: great, i just installed qt 4.7 beta1 :)11:45
=== automatical_ is now known as automatical
NCommanderScottK: so the patch for python-sip and python-qt4 is badly broken.12:26
NCommanderand not usable without additional wokr12:26
* NCommander is looking at it12:26
NCommander(I'm also looking at kdebindings)12:26
simion314hi all13:06
Quintasananyone knows how can I stop bzr from asking my ssh password?13:16
QuintasanLike for 10 minutes or so13:16
QuintasanIt's annoying13:16
ScottKNCommander: Not anyone I know (who uploaded them).13:22
ScottKNCommander: Glad to hear it.13:22
ScottKnigelb: Which Intel 8XX?  It seems to vary widely what works, but I have a 865G system that works pretty well.13:24
nigelbScottK: hold on, lemme check my version13:27
nigelbScottK: 855GM13:28
ScottK845 and 855 do tend to be problematic, but there have been post-release updates to help.13:29
ScottKI'd encourage you to check around for specific work arounds for 855GM.13:29
ScottK#ubuntu-x might have advice on this.13:30
=== yofel_ is now known as yofel
ScottKI don't suppose it's possible for there ever to be a Launchpad release where I read about the new "features" and don't have a reaction along the lines of "Dear God, they can't really mean that"?13:35
JontheEchidnawhat did they do this time?13:35
ScottKJontheEchidna: A new bug status called "Opinion" so people can be welcomed to continue disucssing a bug after it's wontfix or invalid.13:37
Quintasan@_@13:38
JontheEchidnaNow, if that was an importance level....13:45
JontheEchidnabut really, I *do* want the discussion to end when I close a bug13:46
nigelbas long as I can disable mail notifications when a bug is marked as opinion I don't mind :p13:47
nigelbtalk all you want :D13:47
nigelbScottK: I will keep looking indeed.  I'm not happy with working on jaunty, rather be on LTS13:47
JontheEchidnawell, talking is fine I suppose, just don't reopen it :D13:50
JontheEchidnathat is something I really wish we had more control over13:50
nigelbJontheEchidna: yeah, it was raised at UDS13:53
ScottKJontheEchidna: The problem is if you are implicitly subscribed to the bug due to package subscriptions or team membership, there is no escape.13:53
nigelbheh, JFO said "I want to mark a bug as closed and *noone* except LP admins should be able to reopen"13:53
nigelbScottK: exactly!13:54
macoQuintasan: ssh-add ~/.ssh/id*14:10
macoQuintasan: enter the passwords matching the ssh keys it requests and it wont ask you again til your next login14:11
JontheEchidna^you can also use ksshaskpass to do that, and ksshaskpass will use the normal kwallet authentication that you have to do on startup anyways14:12
nigelbmaco: thats pretty nice :)14:14
JontheEchidnaScottK: could you take a look at bug 602733 please?14:23
ubottuLaunchpad bug 602733 in lucid-backports "Please backport K3b 2.0.0 to lucid" [Undecided,New] https://launchpad.net/bugs/60273314:23
R3Dkn16h7Hi All. Can I ask a question? I'm would create an application that uses KDE Widgets in Qt (for example KIconButton or other K-Stuffs). Using KDevelop I get an error "undefined reference to blabla". Is 'cause I should link KDE libraries? How do that in Kdevelop (or in QtCreator?)14:24
ScottKJontheEchidna: Bug needs to say it installs and runs too.14:25
JontheEchidnahrm, I don't have a lucid install handy... anybody able to help out?14:25
JontheEchidnaR3Dkn16h7: Might be a question a bit more appropriate for #kde-devel or somesuch :)14:26
keepitsimpleR3Dkn16h7: You have to tell the linker where to look for libs14:27
QuintasanRiddell: I think your second machine died or something :S14:32
Riddellfooey14:33
RiddellI'll need to ping my flatmate14:33
Riddellmaybe the ISP has finally noticed that they cut me off a month ago14:34
=== rgreening_ is now known as rgreening
=== rgreening is now known as rgreening_
=== rgreening_ is now known as rgreening
CIA-99[muon] jmthomas * 1147170 * trunk/playground/sysadmin/muon/src/MainWindow.cpp Fix the runtime warning "QCoreApplication::postEvent: Unexpected null receiver" by only calling deleteLater on our widgets if they are still around15:04
CIA-99[muon] jmthomas * 1147176 * trunk/playground/sysadmin/muon/src/DetailsTabs/DependsTab.cpp Add support for showing reverse depends in the Depends tab15:24
* Quintasan is going skateboarding15:30
JontheEchidnaScottK: it's beginning to look like pim 4.5 might miss maverick, even.15:51
ScottKJontheEchidna: It wouldn't hurt my feelings any.15:51
Riddellyes they had a meeting yesterday and they want to delay it more15:52
JontheEchidnaI don't think we want it15:52
JontheEchidnahttp://simplest-image-hosting.net/i0-plasma-desktopoo1466-jpg.jpg15:52
Riddelland they want to pull the current tars because they're not good enough15:52
NCommanderScottK: so I identified why kdebindings broke, although smoke on ARM is still in many pieces16:04
ScottKNCommander: Excellent.16:04
NCommanderScottK: yeah, I'm not sure what changed though specifically, it looks like a check for SIP_GLOBAL_OPTIONS was removed somewhere, but I can't remember where I added it necessary16:04
NCommanders/necessary/originally/g16:04
* NCommander thinks his mind is mental mush16:04
* ScottK hands NCommander a spoon.16:05
NCommanderScottK: thanks, I'm going to need it. for python3-ifying sip4, I just managed to break SVN, this is non-trivial, and I'm going to revert out my work for today until I can talk to the other maintainers16:07
ScottKNCommander: You might consider converting to dh_python{2,3} for that (and waiting a week or two will probably make that easier)16:08
NCommanderScottK: yeah.16:09
NCommanderScottK: bloody hell its hot here16:09
ScottKFinland?16:09
anirudh24sevenabout the kubuntu tutorials day, what language is it gonna be in ? english, right ?16:13
Riddellyes English16:13
Riddellit's all interactive, you can ask questions if you get stuck16:13
anirudh24sevencool... i'm in a different timezone... jus confirming... starts in around 2 hours 45 min right ?16:13
Riddellanirudh24seven: yes16:14
macooh thats today? hmm i should boot my kubuntu vm16:15
macois Qt Creator from Maverick's repo new enough?16:16
Riddellmaco: no16:17
Riddellyou need to download the binary package16:17
* maco pouts16:19
macoexpected maverick to be newerer than lucid16:19
Riddellmaco: it is newer, but they removed the qt quick features from qt creator16:21
macodoh16:21
macowhyd they do that?16:22
macowait "they"?16:22
macodoesnt they = someone in this channel?16:22
macoi assume you mean the packager16:23
ScottKmaco: I think it was upstream.16:27
macoScottK: oh. i guess they have a reason, but... if there's a version that they package with qt quick, why can't our version have it too?16:28
ScottKNo idea16:29
NCommanderScottK: yeah.16:29
Riddellmaco: it's not stable yet16:32
Riddellthat's why it got removed for the 2.0 release16:32
macooh16:32
Riddellthe language is still changing16:32
=== AndIrc_ is now known as cmagina
=== cmagina_ is now known as cmagina
JontheEchidnaweird16:49
JontheEchidnapackages from my QApt PPA lack an origin16:49
JontheEchidnahttp://simplest-image-hosting.net/i0-plasma-desktopdk1466-jpg.jpg16:50
JontheEchidnait should be something like LP-PPA-echidnaman-qapt or somesuch16:50
JontheEchidnaas a result it's not showing up in software-center either...16:50
=== ganderson is now known as ganderson-fudz
JontheEchidnaActually, all newly-added PPAs have no origin :/16:53
JontheEchidnaI wonder if its related to add-apt-repository not being able to connect to keyserver.ubuntu.com16:53
ulyssesOh, a PPa for Muon, I should try it^^16:53
JontheEchidnabla, will investigate after lunch16:56
marbhello?17:05
=== hector__ is now known as duva
shadeslayer_Quintasan: poke...17:22
shadeslayer_Riddell_: i *might* not be able to make it today17:23
shadeslayer_loads of rain have damaged internet lines :(17:23
Riddell_shadeslayer_: busy watching football?17:23
Riddell_oh, that's a better excuse :)17:23
shadeslayer_:P17:23
shadeslayer_im not even @ home17:23
Riddell_what's your current status?17:24
shadeslayer_well.. ill try to make it17:24
Riddellif not I can fill in17:24
shadeslayer_but.. if theres no internet,i cant help it17:24
shadeslayer_Riddell: poke me 10 mins before the session17:24
shadeslayer_if i reply ill be able to make it17:25
shadeslayer_well... atleast we will be having everything all over  again in ubuntu dev week17:25
lex79o/17:27
shadeslayer_also... kde rc 2 packages are up17:27
shadeslayer_Riddell: can you upload kdetoys or plasma addons somewhere?17:28
shadeslayer_( not on ktown )17:28
shadeslayer_so that if i come we can use that..17:28
Riddellshadeslayer_: it is on ktown17:29
Riddellboth of them are17:30
lex79Riddell: Qt is in binary New17:30
shadeslayer_Riddell: not everyone who will be attending will have access :)17:30
nigelbshadeslayer_: monsoon hit you? ;)17:32
shadeslayer_:P17:33
shadeslayer_got stranded ... 17:33
nigelbouch, where/17:33
shadeslayer_nigelb: Karol Bagh,Delhi17:33
shadeslayer_coming back from Noida17:33
shadeslayer_brb in a sec17:33
nigelbshadeslayer_: awesome :D17:34
Riddellshadeslayer: http://people.canonical.com/~jriddell/tmp/kdetoys-4.4.92.tar.bz217:35
=== AndIrc_36 is now known as cmagina
lex79Riddell: sorry, did you see my message ^ ? :)17:42
lex79https://launchpad.net/ubuntu/+source/qt4-x11/4:4.7.0~beta1+git20100706-0ubuntu117:42
Riddelllex79: what's new?17:42
Riddellgosh, lots17:42
=== ganderson-fudz is now known as ganderson
lex79New packages: qt4-qmlviewer, libqt4-declarative-{particles, gestures, folderlistmodel}17:43
Riddelllex79: why the new packages?  is that coordinated with Debian?17:43
lex79yes, merge with Debian, see the changelog :)17:43
macooh fridge people...17:45
macothey called Qt Quick as "Qt Quickly"17:45
Riddellat least it'll get rickspencer's attention :)17:47
macoheh17:47
macothey also spelled "platform" wrong when writing about agateau's award17:47
macois this the right version of qtcreator? 2.0.0-0ubuntu117:48
Riddellno, you need the binary (for the Qt Quick stuff)17:49
Riddellfor Johan Thelin's talk anything will do17:50
macoon kubuntu.org it links to the PPA17:50
macofor 4.5 beta17:50
macothats the version that's in that ppa17:51
macoRiddell: see? http://www.kubuntu.org/news/kubuntututorialdays17:52
macono wait...there's no maverick stuff in that ppa 17:54
macobah im confused17:54
nigelbwhere is kubuntu tutorals day being held?17:54
maconigelb: here17:55
nigelbmaco: strange, how come not -classroom?17:56
maco-classroom starts with a u instead of a k?17:56
acemothere is a u in classroom? :o17:56
maco#ubuntu-classroom17:56
macomaybe if there was a #kubuntu-classroom... ;-)17:57
acemoohh, thought the tutorial day was going to be in here?17:57
nigelbmaco: you know classroom isn't really distro specific :)17:57
macoit is in here17:57
nigelbwe're all friendly people there ;)17:57
maconigelb asked why here and not #ubuntu-classroom17:57
acemoahh okay17:57
macoand i joked that it's because #ubuntu-classroom is missing a k17:57
macooh oh how about #ubuntu-klassroom?17:58
nigelbmaco: klassy ;)17:58
JontheEchidnaso tutorials day is in 2 hrs?18:01
JontheEchidnadaylight savings time (or the lack thereof) always messes me up. :/18:02
acemoshould be in 1 i think18:02
macohm so qt creator has git and mercurial built in18:04
maconeeds a bzr plugin... and probably an svn one to make kde happy18:04
acemokde developers have kdevelop?18:05
shtylmanqt creator needs the kdevelop c++ parsing engine18:05
shtylmanactually.. I just want kate to have the kdevelop c++ parsing engine18:05
shtylmanand I would be happy18:05
macooooh qtcreator can read your .vimrc!18:05
sheytanHi guys ;)18:08
sheytanWhat do you think http://img689.imageshack.us/img689/9317/test2vu.jpg ? ;)P18:09
sheytanor this one http://img257.imageshack.us/img257/2910/test3gm.jpg18:09
shtylmanspeaking of ... Riddell any word on the new site?18:10
shtylmancan we just host this stuff ourselves?18:10
CIA-99[muon] jmthomas * 1147236 * trunk/playground/sysadmin/muon/src/PackageModel/PackageProxyModel.cpp Turns out we actually *do* have to invalidate the whole model, and not just the filter, when we change the filter to prevent the results from becoming unsorted.18:24
shadeslayerbtw .. why is new kde rc 4.4.92 ? shouldnt it be 4.4.95? :P18:27
shadeslayernigelb: torrential rains dude... made me think i was in bombay :P18:30
nigelbshadeslayer: The entire electrical system in my pulsar shorted out yday after rains18:31
shadeslayernigelb: the metro dropped me till karol bagh.. and i was supposed to take a cab from there... funny thing.. cabs dont want to go till gurgaon in rains... so had to come to Uttam Nagar :P18:32
nigelbhad ta push to a workshop - pushing 150 kg is not fun18:32
shadeslayeryeah.. :(18:32
shadeslayerthankfully the metro doesnt do that... imagine pushing the metro...18:32
nigelbheh18:33
Riddell~identica dent Kubuntu Tutorials Day in half an hour in #kubuntu-devel18:38
kubotustatus updated18:38
Riddelltxwikinger3: ping18:39
Riddelltxwikinger: ping18:39
txwikingerRiddell: pong18:40
macoRiddell: you forgot to put a ! at the beginning of Kubuntu to send it to the group! but nevermind, i'll redent it with the group tag...18:40
shadeslayerwow.. now i have power woes as well... -.-18:40
shadeslayer~identica dent !kubuntu tutorials day in 30 mins! 18:41
kubotustatus updated18:41
Riddelltxwikinger: all good for your session in a bit over 4 hours time?18:41
txwikingerRiddell: yes18:41
Riddellaalpert: ah, hello18:41
aalpertRiddell: good evening18:41
Riddellaalpert: all good for your session in 80 minutes time?18:41
aalpertRiddell: Just have to learn QML :P18:41
shadeslayerhehe..18:42
RiddellI hear the Brisbane Trolls keep changing the syntax :)18:42
macodrkonqi is failing me18:42
shadeslayermaco: on mav?18:42
macorekonq crashed, and it tells me useless bt, so i install -dbg and reload and it still says useless :(18:42
macoshadeslayer: yes18:42
aalpertRiddell: There shouldn't be too many changes between the latest snapshot and the one I downloaded a few days ago. Just a few names ;)18:42
shadeslayermaco: yeah.. thats een disabled18:42
shadeslayer*been18:43
shadeslayersome security issue..18:43
macoOH RIGHT18:43
macothe kernel thing18:43
shadeslayeryep18:43
macoso i should ulimit -c 0 and then get a core and attach that?18:43
shadeslayerwhatever it means.. :P18:43
shadeslayeroh oh..btw who ever is concerned with uploading rekonq,i have to add some more stuff to apturl patch,please ping before uploading new rekonq18:44
yofelmaco: just enable the ptrace switch?18:44
macoumm18:45
shadeslayeror just use gdb rekonq and run18:45
yofelecho 0 | sudo tee /proc/sys/kernel/ptrace_scope18:45
JontheEchidnathe next kernel update should remove the need for that^18:46
shadeslayeroho18:46
shadeslayer<secret>Did someone get access to a new ppa by chance right now</secret>18:48
=== matrixx_ is now known as matrixx
angelus85i'm trying to install kubuntu-dev-tools with sc 4.5 rc118:48
angelus85but the package seems to conflict18:48
angelus85any way to solve it?18:48
Riddellangelus85: what do you want it for?18:49
shadeslayerRiddell: ninja packaging18:49
angelus85i red it was needed for later sessions18:49
angelus85yep18:49
shadeslayerangelus85: use ubuntu dev tols18:49
Riddellhmm, well it is indeed broken currently18:49
Riddellbzr co lp:~kubuntu-members/kubuntu-dev-tools/trunk/18:49
angelus85Riddell: ok18:49
shadeslayerRiddell: fixed in bzr18:50
keepitsimpleIn 8 minutes UTD ?18:53
Riddellyes18:53
yofelhm, anyone an idea what could make dolphin read whole files just because I hover over them with the mouse?18:54
Riddellthe preview?18:54
lex79Riddell: Qt is still in New :( and I'm building kdelibs 4.4.92.....18:54
yofelpreview is off though 18:54
Riddelllex79: accepted18:57
lex79good ! :)18:58
yofelhm, seems it does it to show more extensive file information, like audio codec and tracks. Any ideas where that comes from? Nepomuk is turned off18:59
Riddellnothing to do with nepomuk, it's KFileThingy18:59
RiddellKFileMetaInfo?  somthing like that18:59
=== Riddell changed the topic of #kubuntu-devel to: Kubuntu Tutorials Day now on https://wiki.kubuntu.org/KubuntuTutorialsDay
Riddellgood evening friends19:00
Riddellanyone where for Kubuntu Tutorials Day?19:00
Riddellanyone here for Kubuntu Tutorials Day?19:01
matrixxo/19:01
aalpertI am19:01
thomasme19:01
blazeme219:01
mariob+119:01
=== simi is now known as simion314
nigelb\o19:01
rich__yep19:01
acemo\o/19:01
keepitsimpleyy19:01
cmagina_me19:02
micahgo/19:02
=== cmagina_ is now known as cmagina
RiddellI'll be impressed if we have any German or Spanish people here19:02
Riddellapparantly there's some sports match on19:02
Riddellbut here we have an exciting programme of talks19:02
* yofel is german...19:02
anirudh24sevenyes19:02
Riddellyofel: I'm impressed :)19:02
Riddellhttps://wiki.kubuntu.org/KubuntuTutorialsDay if you haven't seen it19:03
yofelthe play is still some time away, I'll have one eye here and one there :P19:03
RcartHere's an Honduran :P19:03
Riddellin an hour aalpert will be telling us about Qt Quick, the all new way to programme with Qt19:03
Riddellif you want to take part download the qt creator from here ftp://ftp.qt.nokia.com/qtcreator/snapshots/latest  . 19:03
* txwikinger is German-Canadian :p19:03
Riddellpackaged versions aren't new enough19:03
keepitsimpleRiddell: not even from Kubuntu Experimental?19:04
Riddellshadeslayer will be telling us how to package in Kubuntu, for that one  apt-get install devscripts build-essential kdelibs5-dev  is a good start19:04
Riddellkeepitsimple: not even from experimental, the new Qt Quick stuff hasn't been released yet19:04
aalpertkeepitsimple: If your about box in creator is anything less than 2.0.80, it's too old.19:05
acemoogreat, got booted from the interwebs :)19:05
Riddellfamous Qt author Johan Thelin should be turning up to talk about starting Qt programming19:05
Riddellapt-get install libqt4-dev   for that one19:05
Riddelltxwikinger will be talking about sorting out the good and the bad from bugs, all you need is a web browser for that one19:06
Riddellhopefully we'll all learn something new19:06
Riddellso this is the kubuntu development channel19:06
Riddellit's where most of the exciting development happens for the world's most friendly distro19:07
Riddellwe're currently working hard on Maverick Meerkat which will become Kubuntu 10.1019:07
Riddelldue to be released on 10/10/1019:07
anirudh24sevenRiddell: i live in a location where my download limit is restricted except for abt 6 hours daily... can i save the talks now and download the reqd files and work on it later ? will that be useful ?19:07
Riddellanirudh24seven: yes we'll have logs available for later reading19:08
Riddellalthough it's probably useful to follow along live even if you can't do all the examples yourself, you can still read and understand them19:08
Riddellevery six months at the start of the cycle we meet up for an ubuntu developer summit to discuss our plans for Kubuntu19:09
Riddell(one of the perks of being a Kubuntu developer is that you may get sponsored to fly around the world to fancy hotels)19:09
Riddellthe plans we have for 10.10 are written up here https://wiki.kubuntu.org/Kubuntu/Todo19:09
Riddellthe highlights start with all new versions of your favourite software19:09
RiddellKDE Platform, KDE Workspaces and KDE Applications will be newly polished19:10
Riddellas well as fun new stuff like Google Gadget Plasma Support 19:10
Riddelland useful new stuff like pulseaudio (which is now reliable enough for our high standards, and means you won't have different audio setup between KDE and non KDE applications)19:11
Riddellone notable change is we want to replace the default web browser with rekonq19:11
Riddellwhich is a lovely new all KDE happy web browser19:11
Riddellanother big change is merging the desktop and netbook images into one, the correct workspace will be loaded based on what sort of machine you have19:12
Riddellof course you can change if you prefer the other workspace19:12
Riddelltalking of workspaces we should have an all new one, Plasma Mobile, suitable for handheld machines19:13
Riddellit won't be very stable but ought to be good enough for a Tech preview label19:13
Riddellwhich means we're (well NCommander) working hard on getting everything working on ARM19:13
Riddellfor a whole new range of devices19:13
* NCommander sticks his head in19:14
Riddellwe have plans for an Application focused package manager19:14
Riddell"app store" to non Linux users19:14
Riddellnot sure if that'll make it but it's something we need19:14
Riddellfilling in the gaps in KDE we also have plans for new printer tools and fixing file sharing with samba19:15
Riddellthe gents at Kolabsys want to work with us to create top quality Kontact packages to ensure you never have any problems with KMail19:15
acemooWill the Application focused package manager be kubuntu specific or is it planned to get used over multiple distro's?19:16
Riddellwell that nicely takes me to my next topic19:16
Riddellwhich is what is Kubuntu for19:16
Riddelland I think Kubuntu is for being a distro that brings the best out of KDE Software19:16
Riddellthe way to do that is not to go creating our own distro specific tools19:17
Riddellbut to make the best of what KDE offers19:17
Riddellwe did used to have our own package manager but we didn't have the resources to maintain it19:17
Riddellso it's good for us and good for KDE if we use KDE Software19:17
Riddellso for an Application focused package manager, I'd like that to be done as part of KPackageKit19:18
acemooAweasome, that would make it more easy for my mom to install stuff :)19:18
Riddellthat means we solve the problem for us and for everyone19:18
Riddellnow this approach to KDE (being their biggest fanboy) can bring us into trouble19:19
Riddellif KDE has gaps it means that Kubuntu has gaps19:19
Riddelland network management has been a notable problem there19:19
* maco scowls at hidden ssid's19:19
micahgmaco: ah, so it is a known issue :)19:20
Riddellbut in general the best way to get something fixed long term is to work with upstream19:20
Riddellif we do it ourselves it's likely we won't have the resources to maintain it in the long term19:20
macomicahg: yes, nixternal has complained for months, but i think he said putting in the BSSID (the MAC) manually worked for him. doesnt for me. :(19:20
Riddellmy end goal is world domination for free software19:21
Riddelland anyone who has coded in free software knows that Qt and KDE make the best platform for that19:21
mcguire:)19:22
JontheEchidnabut of course :)19:22
acemooRiddell: when do you believe to be able to achieve world domination? ;)19:22
Riddellso I'm a fan of using those technologies as much as possible and not using inferior technology or system proprietry technology19:23
Riddelland I also think linux distros should make releases, and do so with a good balance of stability without being out of date19:23
Riddellnow world domination won't be achieved all at once19:24
Riddellit'll be one place at a time19:24
Riddellmy trick is to take over places with good beaches and sun, that way you can enjoy yourselves while you do it19:24
Riddelltaking over the canary islands was a big win there (Kubuntu is used in all their schools)19:25
acemooI always knew your a genious19:25
Riddellwe're currently in Finland for Akademy and it's surprisingly sunny here, 23.5 hours a day19:25
acemooMust suck for the person who i saw complaining he wakes up when the sun gets up...19:26
cmaginaLots of time to work then ;)19:26
RiddellNew Zealand is a nice place and we took that over a while ago (Weta Digital use Kubuntu on all their thouands and thousands of machines)19:26
Riddelland Weta Digital means that we already have a hold on Middle Earth and Pandora19:26
Riddellas well as District 9 (although i don't advocate doing an alien invasion to take over a country)19:26
Riddelloh we took over Georgia too (used in all their schools)19:27
Riddellwhich takes me to another topic19:27
Riddelltranslations19:27
Riddellwe do this funny thing in Ubuntu where we put all of upstreams translations into launchpad then take them back out of there19:28
JontheEchidnaI had a friend in grade school who's father imigrated from Georgia. (Before Kubuntu's time, though) ;)19:28
simion314Q: was Shaman considerd as a ackage manager?19:28
Riddelland that means recreating all of KDE's translations infrastructure19:29
Riddellwhich is fiddly and error prone19:29
Riddellsimion314: yes we have looked at Shaman but it wasn't stable enough for use19:29
Riddellmaybe JontheEchidna has looked at it more recently19:29
JontheEchidnaYeah, it's not near being ready yet.19:30
JontheEchidnaNeeds a lot of love19:30
Riddellthere is a good reason to use launchpad for translations and it's due to the lack of an upstream translations community19:30
Riddellif we have say Georgia wanting to translate Kubuntu into Georgian, pointing them at .po files in KDE SVN and again for openoffice and whatever mozilla do for translations isn't going to be popular19:31
Riddellit's too fiddly by far for non geeks and too fragmented19:31
Riddellso launchpad helps them see what needs translating and in a consistent and easy manor19:32
Riddellbut it has plenty of critics19:32
Riddellit means translations often don't get shared with other distros 19:32
Riddelland it means upstream translations can be changed19:32
Riddelland launchpad might not have the right settings (e.g. lithuanian changed from having 3 plural forms to 4 and launchpad didn't notice)19:33
Riddellalthough I'm not sure how you can be unclear how many plural forms your language has :)19:33
Riddelllaunchpad does give us a nice way to have translations for Kubuntu specific bits of software such as the installer19:33
Riddellin general for KDE Software we advise people to do the translations in KDE 19:34
Riddellbut while there remains a lack of an upstream translations community it's unlikely to go away19:34
acemoomaybe there should be made a translation community thats not linked to any distro?19:35
ScottKacemoo: There is.19:35
Riddellright19:35
Riddella cross project one19:35
ScottKUnfortunately different projects have different standards for how translations are done.19:35
Riddellwe do have dpm now who is dedicated to sorting out translations problems, so if you have any do let him know19:36
Riddellone thing we can always do better in Kubuntu is Quality19:36
Riddellwe always need more testers for new software19:37
Riddellwhenever we make a PPA release of new software versions we need lots of testers19:37
Riddelland it can be surprisingly hard to find them sometimes19:37
Riddellso hanging around on kubuntu channels offering to help test is very welcome19:37
Riddellsimilarly for each alpha/beta/RC and final release we need to test the images for various install methods19:37
Riddelland it's very hard to get people to do that, it's time and bandwidth consuming19:38
Riddellbut we can't release without it being done so we'd love for people to take part more there19:38
Riddelland of course we have lots of bugs report, txwikinger will talk later about helping to sort those19:38
Riddellwell I think that's all the items I had to talk about19:39
Riddellany questions?19:39
alvinIs project timelord still busy?19:40
emanueledo you use virtualization for that?19:40
Riddellapachelogger?  JontheEchidna?19:40
Riddellemanuele: yes ISO image testing can be done in virtualisation19:40
simion314Q: i had a panel related bug only in kubuntu, all versions but not in other distro is somethng diffrent in kubuntus KDE? is it vanila KDE or you put stuff in it?19:40
Riddellalthough I tend to use real hardware to be extra certain, but virtual machine installs are very useful too19:40
ScottKalvin: Project Timelord is a set of overarching goals to improve Kubuntu.  We are still working on them.19:41
ScottKsimion314: We do have some distro patches, but we try to keep them to a minimum.19:41
ScottKSo it's not exactly vanilla, it's close.19:41
Riddellwe do tend to consider distro patches evil19:41
Riddellbut sometimes they're the best way19:41
JontheEchidnaProject Timelord has been taken in to consideration when planning out the goals for 10.10. It's a long-term vision for the direction of Kubuntu19:41
acemooQ: I heard about a mac like menu bar being made in (k)ubuntu, hows that processing and is there any place where i could follow it?19:42
ScottKacemoo: Could you put that in more general terms for those of us who don't know about Macs?19:42
jgeactwhat about reKonq?19:42
JontheEchidnaacemoo: our very own agateau just recently posted an update about the global menu: http://agateau.wordpress.com/2010/07/05/getting-menus-out-of-application-windows-2/19:42
Riddellsimion314: we also use plasma's javascript to setup some bits on the panel (such as changing from knetworkmanager to the new plasma network manager) so it's possible that could have bugs19:42
ScottKAh.  That one.19:43
acemooScottK: yeah that one :)19:43
ScottKacemoo: We are looking into using that on netbooks this cycle if it's mature enough.19:43
RiddellI'd like to see the global menu being used in our netbook workspace for Maverick19:43
keepitsimpleemanuele: For testing ISO's check http://goo.gl/pqUd && http://goo.gl/pTFd 19:43
JontheEchidna^and of course non-netbook users will be able to opt-in for using the global menubar on the desktop if they wish19:43
Riddelland so would upstream (although they can't use it because it's not in stock Qt)19:43
ScottKThis is an example of something we distro patch for.19:44
macocould netbook users opt out?19:44
ScottKWe'll carry the patches for a cycle or two, but they'll go upstream in Qt 4.8.19:44
ScottKmaco: Certainly.19:44
macoyay19:44
JontheEchidnamaco: right click-> "Remove this menu widget", just like any other plasmoid :)19:44
ScottKIt would be removing a widget from the panel.19:44
simion314Riddell: my problem is that the clock plasmoid is not full displayed, i use larger fonts then usual ,onlu in kubuntu and since Hardy i think, no such bug inArch or other kde distros19:44
macoJontheEchidna: yay19:44
acemoo4.8? oh beef thats one way of getting people back to kubuntu :)19:45
ScottKsimion314: I recally seeing that in the past.  I don't see it in Lucid.19:45
ScottKacemoo: Qt 4.7 is already past feature freeze, so it's the first chance.19:45
ScottKThis is all being coordinated with Qt and Plasma upstreams.19:46
Riddellsimion314: nothing comes to my mind what could cause that, we certainly don't alter the clock applet, nor the plasma style19:46
simion314ScottK: us still in lucid and still in kde4.5 packages19:46
ScottKRiddell: I think it may be related to font settings in k-d-s.19:46
ScottK(but since I don't have it anymore, I can't say for sure)19:46
Riddellsimion314: so maybe try removing kubuntu-default-settings and seeing if that helps19:47
JontheEchidnaBut if he's using custom font settings, k-d-s shouldn't be doing anything19:48
acemooScottK: Atleast its nice to see the global menu bar is so far in development already, I was afraid it might become vapor ware like the project I saw around kde 4.119:49
userQ: what about the bluetooth stack in kde? ie there is no way to use mobile phone + bluetooth + internet tethering without console.19:49
Riddellacemoo: it's also nice that it works with GTK apps too (although they have plenty of bugs on their side but that's what you get for not using qt :)19:50
Riddellwe have a new version of kde bluetooth tools coming in a couple of weeks19:50
ScottKuser: Bluetooth is another area where sticking with KDE causes us to lag.  Kbluetooth was unmaintained for a while, but it has a new maintainer now and so progress is being made.19:50
RiddellI'm told (by the author) it's a big improvement19:50
Riddellbut networking may be another question19:51
ScottKuser: You might try installing blueman (it's in Universe) and see if that works in the meantime.19:51
Riddellsince that's mostly a network manager issue and KDE's network manager is a problem area as I mentioned earlier19:51
userbluetooth pan + networkmanager would be very nice :)19:51
ScottK(while we stick with stock KDE stuff as much as possible in the default install, one advantage of being part of Ubuntu is we also offer the full breath of the Debian package archive if you want it)19:52
acemooohh right, i've been planning on using bluetooth to use my mobile to pause vlc because i hate getting up and walking to my laptop when am watching a movie on my tv screen19:52
acemoouser: thanks for reminding me about that, i keep forgetting about it19:52
Riddelltalking about watching films, plasma media centre is showing progress19:52
RiddellI need to find the right person to talk to here at Akademy to see if it'll be ready for maverick19:53
mcguireQ: what are the relations between kbluetooth and bluedevil ?19:53
Riddellkbluetooth is old19:53
Riddellit got replaced by kdebluetooth19:53
Riddelland is now being replaced by bluedevil19:53
RiddellI believe19:53
JontheEchidnawell, kdebluetooth was the old, replaced by kbluetooth, but yeah :)19:53
acemooplasma media centre? i didn't even knew about that... sounds interesting :)19:53
Riddelloh, my mistake19:54
mcguireI think kbluetooth is more recent than kbluetooth but ok19:54
simion314i an using kde4.5 and the systemsettings looks bad in this versionm is it configured like this in KDE or is only a kubuntu stuff19:54
JontheEchidnabluedevil will be replacing both soon, and then it won't matter :D19:54
bigbrovarQ:  any idea if kbluetooth (or the recent one) supports bluetooth headphones? 19:54
Riddellplasma media centre is a "10 foot" interface (or as we prefer to call it outside the US, 3.048 metre interface)19:54
mcguireyes ;)19:54
JontheEchidnasimion314: The system settings reorganization was made by KDE19:54
Riddellso you can use your computer from a distance to watch films and play music19:54
ScottKsimion314: systemsettings got a major overhaul upstream in 4.5.19:55
ScottKhttp://adjamblog.wordpress.com/2010/07/07/rekonq-0-5/ <- shadeslayer19:55
acemoo3 meter...? rats my tv is only 37 inch :S19:55
ScottKacemoo: that's distance from the TV, not size of it.19:55
Riddellsystemsettings was a kubuntu project that got taken over by KDE upstream (long time ago)19:55
bigbrovarRiddell: no way really? wow19:56
mcguirebigbrovar: bluetooth headphones support is currently being implemented in kbluetooth according to what I've read recently19:56
Riddellbigbrovar: I just hated KControl so badly I had to get it fixed :)19:56
Riddelljgeact: you asked about rekonq, any paticular aspect?19:57
bigbrovarRiddell: nice to know kubuntu has done is bit for kde upstream 19:57
acemooScottK: so its like a hardware and software combination?19:57
alvinWill khelpcenter receive some updated content?19:57
Riddellnow isn't a good time to test rekonq unfortunately, there's bug in flash and elsewhere, but I'm pretty confident they'll get sorted19:58
ScottKacemoo: Yes.  I haven't used it a lot though.19:58
Riddellalvin: documentation is mostly an upstream issue and it can be considered a gap in upstream in places19:59
Riddellas such Kubuntu would like to help fill it and our docs man nixternal has been doing some of that19:59
Riddellbut it's a big task19:59
Riddellthere was an akademy award presented to a guy for documentation on Sunday so maybe things will pick up there again19:59
acemooScottK: with plasma media centre, should i expect to have an interface on my mobile to control the computer or what?20:00
Riddellplasma media centre can be used with a remote control or a keyboard or a mouse20:00
Riddellof course wireless keyboard/mouse works best20:00
Riddellbut I think it's time to move on20:01
Riddellplenty of time for questions later20:01
RiddellI'm very happy to introduce our first guest speaker20:01
jgeactRiddel: no, only what new thing20:01
acemooahh.. i found the project page already :)20:01
ScottKacemoo: I haven't investigate media center at all.20:01
acemoothanks for the talk Riddell20:01
acemooAnd thanks for the support ScottK20:01
Riddellall the way from Australia, via Finland and here to talk about Qt Quick it's aalpert 20:01
aalpertHello :)20:02
userhi ^^20:02
acemooHi aalpert20:02
aalpertMy background is that I'm a Qt developer and have been working on QML, since the project started. So ask me anything :).20:02
aalpertThis session is an introduction to Qt Quick, which will be new in Qt 4.720:03
aalpertFirst up; What is Qt Quick? It's a marketing term for QML + Creator + the QtDeclarative module. To developers, it's pretty much just QML. Since we can get technical when we need to talk about details :) 20:03
aalpertOnto the real stuff. What is QML? Qt Meta-Object Language (or Qt Magic Language, if you prefer) is a declarative user interface language.20:03
aalpertYou can use it to declare the whole UI layer, plus some logic in JavaScript. And then you can stick the UI onto a Qt program.20:03
aalpertSo when Johan talks about 'legacy' Qt stuff later, a lot will still be useful. Just don't worry about the widget bits ;)20:04
aalpertActually, QML only really replaces widgets fully on mobile devices.20:04
aalpertOn desktops, widgets still work fine.20:04
aalpertQML is also interpreted, so it can work anywhere. Including the next version of Kubuntu, which will probably will have 4.7 available (and have qmlviewer in one of the packages)20:04
aalpertPlasma integration is also in progress, and there were a few sessions on that at akademy so far20:05
aalpertQML is simple enough that designers can use it too20:05
aalpertdo we have any designers here?20:05
aalpertOr anyone who doesn't like using C++?20:05
* keepitsimple all the way C++20:06
aalpertDevelopers can enjoy QML as well, don't worry20:06
aalpertif you all enjoy Qt C++ already, you'll be glad to know that QML is designed to integrate well with it20:06
aalpertso QML can easily interact with QObjects that have properties, signals and slots20:07
aalpertif you designed your application with a good UI and data level split, then adding QML is really easy20:07
aalpertLet's now go through the hello world tutorial20:07
aalpertif you downloaded creator, you'll see a Qt Quick examples combobox on the welcome screen20:08
aalpertand from there you can select tutorials20:08
aalpert and you'll load up a project containing this, and other tutorials20:08
aalpertfor others, I'll be going through it here line by line20:08
aalpertand since it's IRC, questions at anytime are just fine.20:08
aalpertNote that if you are looking at it in creator you might see lines like //![0]. Ignore them, they are just used to generate the example docs.20:09
acemooaalpert: so far, everything you said is clear :)20:09
aalpertacemoo: Good to know :)20:09
aalpertFirst line of QML....20:09
aalpertimport Qt 4.720:09
acemooThought i'd give a little feedback so you don't think your here all alone :P20:10
aalpertHow can I feel alone with 157 nicks in the channel ;)20:10
Riddellaalpert: this is in Cell.qml?20:10
* keepitsimple we are all ears20:10
aalpertThis is in tutorial1.qml20:10
Riddellgot it20:10
acemooaalpert: could be 156 afkers? :P20:10
aalpertin the helloworld directory20:10
aalpertthe creator screen currently loads all the tutorials, and all stages at once20:11
aalpertimport Qt 4.7 imports all the types in Qt 4.720:11
aalpertso when we start using types later, like 'Rectangle', you now know where they are from20:11
aalpertand if you get error messages about not finding types, check your import messags20:11
aalpertand your spelling20:11
aalpertNext line...20:12
aalpertRectangle {20:12
mariobaalpert: Is it possible to only import 'Rectangle'?20:12
aalpertmariob: No. Module level is the only granularity you have20:12
mariobok20:12
acemooisn't that a bit memory inefficient?20:12
aalpertonly if you have bloated modules :P20:13
aalpertmaking the types available is not expensive.20:13
aalpertthis merely means that the engine knows where to look to get the types20:13
acemooi'll just hope and asume the qt modules ain't bloated then :)20:13
acemooohh..20:13
aalpertand a module is often just one C++ library anyways20:13
aalpertthe Rectangle { line actually creates a Rectangle element20:14
aalpertthere is a matching close brace too, much later in the file20:14
aalpertbetween {} you can set the properties and children of the element20:14
aalpertthe next line, 'id: page', sets the id of the element to 'page'.20:14
aalpertSo that later in the file, you can refer to it as 'page' (and we will)20:15
aalpertnext line 'width: 500; height: 200' sets two properties20:15
aalpertthe width and the height. To values measured in pixels20:15
aalpertnote that you can have a semi colon instead of a new line20:15
aalpertthe next line sets the color to 'lightgray', in a similar manner20:15
wind-rider___aalpert: is it also possible to set a size relative to screen width or so?20:15
wind-rider___aalpert: in percents?20:16
aalpertwind-rider___: You can only set in pixels, technically20:16
mariobwind-rider___: witdh*0.6 would work20:16
aalpertbut you can use bindings to do exactly that20:16
aalpertand the bindings reevaluate when the width changes20:16
anirudh24sevenaalpert: sounds a lot similar to css...20:16
aalpertIt's a little similar to css in terms of styling, yes.20:17
aalpertbut without the cascading part.20:17
aalpertAnd I don't think setting things in CSS will reevaluate when the expression changes20:17
aalpertthe next line, Text{, creates another element20:17
aalpertthis element, as it's inside the Rectangle{}, will be a child of the Rectangle element20:18
aalpertand we set its properties over the next few lines20:18
aalpertanchors.horizontalCenter: page.horizontalCenter warrants a little more explanation though20:18
aalpertthe anchor properties are another way to position elements20:19
aalpertand that line binds the horizontal center anchor of the Text to the horizontal center of the element called 'page'20:19
aalpertnote that this is a binding, and so will reevaluate when page.horizontalCenter changes20:19
acemooare all the elements in one namespace? seeing the Text element does not needs a special name for its parent element20:20
aalpertyou can run the tutorial now, and see 'Hello World'20:20
aalpertand if you resize the window, and change the horizontal center, the text moves20:20
aalpertacemoo: The names have a form of scoping20:20
aalpertbut you could use 'parent' instead of 'page' here20:21
aalpertinside a single QML file, you can usually access all the elements with an id20:21
aalpertthings get more complex with multiple files20:21
aalpertso onto tutorial2.qml, which uses multiple files20:21
aalpertThe change here, is a grid containing a lot of cells that are all very similar20:22
aalpertso we want to write the code for the Cell once, and reuse it.20:22
aalpertWhile the types Rectangle, Text and Grid are in Qt 4.7, Cell is not.20:22
aalpertSo it will load the file Cell.qml to create the Cell type20:22
aalpertNow you can look at Cell.qml :)20:22
aalpertItem is just a simple type in QML, which is pretty much nothing but a bounding box.20:23
aalpertthe line 'property alias cellColor: rectangle.color' creates a new property on this item, and calls it cellColor20:24
simion314Item is like QWidget the base class for all elements?20:24
aalpertsimion314: Yes, and like QGraphicsObject is the base class in QGraphicsView20:24
aalpert'property' starts the property declaration, 'alias' is the type of property, and 'cellColor' is the name20:24
aalpertbecause it is an alias type, it's value is another property. And it just forwards everything to that property20:25
aalpertthis is because, back in tutorial2.qml, we only have a 'Cell'. And the interface for that is whatever is declared in the root item of Cell.qml20:25
aalpertso to expose rectangle.color, we add an alias property20:25
aalpertthe 'signal clicked(color cellColor)' line is similar. We add a signal to the item so that it can be used in the main file20:26
aalpertAnother new element in this file is 'MouseArea'. This is a user input primitive20:26
aalpertdespite the name, it works equally well for touch20:27
aalpertQML can be the entire UI layer, including user interaction.20:27
aalpertAnd MouseArea is a separate element so that you can place it whereever you want. You can make it bigger than the buttons for finger touch interfaces, for example20:27
aalpertto make it the exact size of the Item, we use 'anchors.fill: parent'20:28
aalpertwhich anchors it to fill its parent20:28
aalpertless obvious is the 'onClicked' line after that20:28
aalpertMouseArea has a signal called 'clicked'20:28
wind-rider___aalpert: in that case you should place the button shape inside a MouseArea and make it a child of MouseArea?20:28
aalpertwind-rider___: That is one way of doing it. You can also make the MouseArea large than the button and centered in it20:29
wind-rider___aalpert: ok20:29
aalpertNote that child elements can go outside their parent elements in QML20:29
aalpertwhile elements can click, this is off by default20:29
wind-rider___aalpert: ok, then it's clear :)20:29
aalpertand I'll point out a use of this when we get back to tutorial2.qml20:29
aalpertMouseArea has a signal called 'clicked', and thus a signal handler called 'onClicked'20:29
aalpertyou can put a script (QtScript) snippet in 'onClicked', like in Cell.qml, and that snippet is executed when the signal is emitted20:30
aalpertso when you click on the MouseArea, the clicked signal is emitted, and the script snippet is emitted20:30
aalpertand the script snippet says to emit the clicked signal of the parent item, with container.cellColor as the argument.20:31
aalpertBack to tutorial2.qml, we can see this interface in use20:31
aalpertIn each Cell instance, we set the cellColor property20:31
txwikingeryou don't need to import cell?20:31
aalpertand use the onClicked handler.20:31
aalpertfiles in the same directory are automatically imported20:31
aalpertif it was in another directory, or a module, you'd have to import that directory (or module)20:32
aalpertThe Grid element positions the Cell elements in a grid20:32
aalpertby setting properties such as rows, columns, and spacing, we can control the details of how this occurs20:33
aalpertfor some reason earlier I thought the Grid was 0,0 sized, but now I realize it isn't20:33
aalpertbut if it was, then the Cells would still have the same x,y valeus20:34
aalpert*values20:34
aalpertand note that x,y positions are relative to your parent, just like in graphics view20:34
acemoolol Pnux, there you go ;)20:34
aalpertand so if the Grid was 0x0, and in the same place, then it would look the exact same20:34
aalpertit's just that Grid does size itself to its children, and this is needed for its anchors.bottom to work20:35
aalpertNow that we've learnt reusable components in QML, lets move on to the bit you've all been waiting for. Animations20:35
aalperttutorial3.qml makes this thing animate20:35
wind-rider___alpert: about tutorial220:35
wind-rider___aalpert: how come that Grid is also snapped to the left side of the window?20:36
aalpertx: 420:36
wind-rider___wind-rider___:  in the code I only see that it's sticked to the bottom20:36
wind-rider___aalpert: ok, clear :)20:36
wind-rider___I overlooked it20:36
aalpertx: 4 is the same as anchors.left: parent.left; anchors.leftMargin: 420:36
aalpertwe could do y: parent.width - colorPicker.width - 4 instead of the current anchros20:37
aalpert*anchors20:37
aalpertbut in this case, the anchors are clearer20:37
aalperttutorial3.qml does animations using states and transitions20:38
aalpertone trap to be aware of - these aren't the states and transitions of the State machine framework in Qt20:38
aalpertthose are logical states, these are UI states20:38
aalpertHere, a State is just a set of property changes from the base state (called "")20:38
aalpertand a Transition is just telling it how to animate those property changes20:39
aalpertso in this file, in the Text element, we add a MouseArea, states, and transitiosn.20:39
aalpertAnd since I'm getting tired, I'll stop correcting my typos ;)20:39
aalpertWe have a State, which we name "down", and the way we are entering it is through the when property.20:40
acemooaalpert: and you'll make pnux think your a bot again ;)20:40
aalpertthis is just a standard boolean property20:40
aalpertacemoo: use !help to get instructions for this bot20:40
wind-rider_aalpert: 20 minutes to go ;-)20:40
aalpertso the magic really happens because of QML's bindings.20:41
aalpertWhen either 'mouseArea.pressed' or 'true' changes, that property binding gets revaluated20:41
aalpertand you may find that this changes the value of the when property.20:41
aalperttrue doesn't change often. But when mouseArea.pressed does, it makes 'when' true. And so the state activates itself20:42
aalpertand this applies the property changes in the PropertyChanges element20:42
aalpertwe do try to make this language fairly self explanatory :)20:42
aalpertPropertyChanges has a similar syntax to the rest of QML. Once you set the target, it is just like you are in that item.20:42
aalpertSo the 'y: 160' and 'rotation: 180' will be applied as if they were written inside the Text item20:43
aalpertwith just the State, it would be boring. Comment out the transitions: line (and everything to the } of the Transition as well) to find out20:44
aalpertC++/JS style comments work in QML20:44
aalpertThe Transition element says how to animate the property changes.20:44
aalpertthe from and to properties on the element say which state you are going from and to20:44
acemooor just select what you want to comment and ctrl+/20:44
aalpertyou can use "*" to match all states.20:45
aalpertBut in this case we want to be specific. So that when we set the reversible property, it will use the reverse of this transition to go from the 'to' state back to the 'from' state20:45
aalpertThe ParallelAnimation element just groups animations20:46
aalpertand when it runs, the animations in it are run in Parallel20:46
aalpertThe first animation in it is a NumberAnimation, which animates numbers20:46
aalpert'properties: "y, rotation"' means that it will animate the y and rotation properties20:46
aalpertso if these properties changed in this state, on any items, they will be animated in this way20:47
aalpertthe rest of the properites in the NumberAnimation will define this exact way20:47
aalpertduration: 500 means the animation will take 500ms20:47
aalperteasing.type: Easing.InOutQuad means that it will use an interpolation function that has quadratics on both the in and out parts20:48
aalpertor something like that. The documentation has pretty pictures20:48
aalpertIt's at 20:48
aalperthttp://doc.qt.nokia.com/4.7-snapshot/declarativeui.html20:48
aalpertBut the docs don't suffer the same stability freeze as the rest, so they will still be improving for some time.20:48
wind-rider_aalpert: when I hold the mousebutton until the text is at the bottom and I quickly do a mouseup and I hold it again, the mousepress is not recognized anymore. can you explain that? or am I nitpicking? ;-)20:48
tsviWill it only affect the text element?20:49
aalpertwind-rider_: Are you using an old version?20:49
aalperttsvi: The animation will affect all elements whose y or rotation properties have changed20:49
aalpertin that state20:49
aalpertyou can be more specific if you want20:49
acemoowind-rider_: does it not recognize when its still reverting or also after that?20:50
wind-rider_acemoo: when it's still reverting20:50
aalpertwind-rider_: I can't reproduce. But I think you might be misinterpreting something here20:50
aalpertremember that the MouseArea is on the Text20:50
aalpertso when the Text moves, the MouseArea follows it20:50
aalpertso if you try to click again before the Text returns, the MouseArea isn't there20:50
aalpertYou could make the MouseArea a sibling of the Text instead, to keep it in one place20:51
acemooaalpert: you just made me try to go click the moving text, lets see if i can do that :)20:51
wind-rider_aalpert: that is it :)20:51
aalpertThe fun thing about QML is that it is so powerful and dynamic, you get all these extra 'features' :)20:51
acemooyep works :)20:51
aalpertThe other animation is ColorAnimation, which automatically animates any color changes.20:51
useris it possible to compile qml or is there only the interpreted way?20:52
aalpertuser: It compiles transparently without you noticing.20:52
aalpertI don't remember if we cache the compiled output somewhere20:52
aalpertbut I believe you have compiled it every time you run qmlviewer :)20:52
aalpertOne goal of QML is to provide a clear declarative interface and not too much C++ interface20:53
aalpertthat way, it's like a black box for your UI files20:53
aalpertand so we can make it magically faster every release :)20:53
Riddellnote that distros won't install qmlviewer normally, you need to have some c++ to run it for a real application with Qt 4.720:53
wind-rider_aalpert: user probably means that one can ship just an executable file instead of an executable+qml file20:53
macocan you use qml with pyqt?20:53
aalpertRiddell: It'll probably be part of the qt-devel package though20:53
macoRiddell just said c++20:53
Riddellyes it'll be available to install for developers20:54
aalpertYou can create a Qt/C++ app and use QDeclarativeView to easily load a QML file (with a function call)20:54
Riddellmaco: I'm sure the QDeclarativeView features will get bindings just like the rest of the Qt API20:54
aalpertif that QML file is in Qt resources, then you compiled the qml file into the application20:54
mariobDon't forget to prefix resources with qrc:/ (at least in the previous releases of qml)20:55
aalpertfrom C++, use qrc:/ from qml, don't.20:55
aalpertwe might need to beef up the docs on that use case20:56
aalpertNote that you can export your existing QGraphicsObject subclasses to QML with a couple lines, and then use them like Rectangle20:56
aalpertin case any of you have existing graphics view code lying around20:56
bigbrovaraalpert: when can we start seeing QML built apps in kde. and what does it really offer KDE and its app ecosystem I am speaking from a user non programmer point of view 20:56
aalpertbigbrovar: From the User point of view, you'll see more fluid apps20:57
aalpertbecause developers can do the animations easier20:57
aalpertand UI scripting will be a little easier20:57
Riddellthe KDE PIM guys are using it already for making e-mail and calendar apps using akonadi20:57
aalpertThe benefit to KDE and it's app ecosystem is just another way of creating UIs, so it'll increase app quality indirectly20:57
aalpertand it'll be easier to port to mobile now. Because it's much easier to create the mobile UIs with QML20:58
mariobRiddell: Are there any screenshots?20:58
bigbrovar:) I definitely backed the right horse then :) 20:58
aalpertthe KDE PIM guys seem happy with it for mobile even though they suffered through immense early adopter pains20:58
Riddellhttp://dot.kde.org/2010/06/10/kde-pim-goes-mobile20:58
aalpertbut we've stopped changing stuff (well, will this week) and so it's stabilizing20:58
aalpertthis is practically the first tutorial on it QML that won't go out of date really fast :) .20:58
aalpertbigbrovar: QML is a lot more accessible, so user non-developers now have a chance at writing plasmoids20:59
aalpertit's even easier than the JS bindings for plasmoids20:59
Riddellthere won't be widespread use of QML until Qt 4.7 is released, it's still not in general use20:59
aalpertI think I'm out of time, for further questions we have #qt-qml on freenode20:59
aalpertQML is still pre-release. I doubt there will be much adoption until 4.7 is released later this year21:00
aalperthopefully in time for kubuntu 10.1021:00
Riddellaalpert: will the designer integratation be coming back at some point?21:00
aalpertRiddell: At some point. When it works well enough.21:00
acemooWhen should i expect a preview version of qt 4.8?21:01
aalpertsince it doesn't right now, it's not coming out soon21:01
aalpertbut we will try to get something visual to help people in QtCreator 2.121:01
Riddellit looked very slick when I saw it, means you can make QML interfaces without caring much about the code21:01
aalpertacemoo: trunk is already 4.8 qt.gitorious.org21:01
Riddellgreat for designers21:01
Riddell5 minutes break now before the next tutorial21:01
aalpertThe designers I talked to liked it, but were okay at writing the code too21:01
aalpertbut they were really good designers :)21:01
acemooaalpert: aweasome, then the global menu bar can't take too long to be going to different distro's as unstable/testing :)21:02
matrixxaalpert: I was there listening your presentation on aKademy too today, both presentations where good :) Thanks21:03
matrixxoops *were good21:04
matrixxprobably I'm also a bit tired already, it's been a long day in aKademy21:04
aalpertOne warning about QML that I forgot to give: The main team working on it is in Brisbane (GMT +1000)21:05
wind-rider_aalpert: thx for your tutorial :-)21:05
aalpertso the irc channel might be a little underpopulated while some of you are awake21:05
matrixxin that case, we can join are wise heads together :)21:06
acemooaalpert: thanks for giving the nice tutorial and helping work on making QML21:06
Quintasanthanks!21:07
aalpertI'm always happy to show people my pre-release software :)21:07
Riddellwe are now due a packaging session21:07
Riddellhowever shadeslayer isn't around to give it21:07
Riddellso I'm going to make one up on the fly!21:07
Riddellanyone want to follow along?21:07
maco(shadeslayer's internet fell over, if you're all thinking he's playing hooky)21:07
acemooI'm interested, even though am on arch..21:08
Riddellhe's got flooded away in the monsoons21:08
Quintasanoh my how unfortunate21:08
keepitsimpleYou can give some tips and best practices21:08
keepitsimpleor something like that21:08
Riddellevery few weeks KDE make a new release of their software compilation21:08
cmaginaThanks for the tutorial21:08
Riddelland our crack team of packaging ninjas jumps into action to package this21:08
Riddellpackaging for the development version (Maverick) and usually backporting it for the stable release21:09
Riddelljust such a release is about to happen21:09
RiddellKDE SC 4.5 RC 2 is coming, what a lovely acronym filled name21:09
Riddelland as crack ninjas we get the tars a few days early to package them up 21:09
Riddellso everyone here is now a crack ninja and can get the tar early21:10
Riddellyou just have to remember it's top secret until release21:10
acemooRiddell: I heard all ninja's got killed like long long ago.. how can you still be a ninja? :o21:10
* Quintasan sets up an ambush for acemoo 21:10
macoacemoo: not true! i met a guy studying ninjitsu at the art store down the street21:10
Riddellninjas are skilled in the arts of deception and hiding 21:10
acemoosorry.. someone at my school gave a presentation about ninja's 2 weeks ago.. :D21:10
Riddellwget http://people.canonical.com/~jriddell/tmp/kdetoys-4.4.92.tar.bz221:10
Riddellthat's the top secret tar21:11
Riddellnow for Debian packages the name of the tar needs to follow a paticular format21:11
acemootoys are always great :)21:11
Riddellso rename that file to kdetoys_4.4.92.orig.tar.bz221:11
Riddelland extract it (tar xf kdetoys_4.4.92.orig.tar.bz2)21:12
Riddellnow we need to get our packaging21:12
Riddellwhich we keep in a bzr archive21:12
Riddellbzr co lp:~kubuntu-members/kdetoys/ubuntu21:13
Riddellif you don't have bzr installed, you should, it's the best version control system ever21:13
Riddellit's like git, only usable21:13
userLOL21:13
aalpertI thought that was mercurial's tagline...21:13
Riddellyou could also just download the packaging from the current kdetoys package21:13
Riddellhttps://launchpad.net/ubuntu/+archive/primary/+files/kdetoys_4.4.90-0ubuntu1.debian.tar.gz21:13
Riddell(I found that on https://launchpad.net/ubuntu/+source/kdetoys )21:14
Riddelleither way you'll get a debian/ directory21:14
Riddellwe use the debian packaging format in ubuntu of course21:14
tsviNot. I got ubuntu/ dir21:14
acemooam installing bzr atm21:14
plan_richy me too21:15
Riddelltsvi: but inside that should be debian/21:15
acemoo46k/s \o/21:15
tsviok21:15
* Riddell pauses so people can catch up21:16
* user catched up :)21:16
* acemoo catched up21:16
Riddellgood enough :)21:16
Riddellyou need to move the debian/ directory inside the kdetoys-4.4.92 source21:17
tsvitsvi catched up (how doyou do this message thingy?)21:17
macotsvi: /me21:17
Riddellthen change directory   cd 21:17
Riddellcd kdetoys-4.4.9221:17
Riddelltype there, obviously don't just type cd or you'll go to your home directory21:17
acemooohh sweet, thats better as cd ~21:18
acemoo:)21:18
Riddellsee, I said you'd learn something :)21:18
Riddellnow we need to update the changelog with the new version number21:18
Riddelldch -i21:18
Riddellshould open up a text editor with a new entry ready to be added to debian/changelog21:19
Riddelldch is in the devscripts package21:19
Riddellthose of you following on arch will need to just edit debian/changelog and add a new entry manually :)21:19
acemooalright21:20
Riddellnow we are ready to build it21:20
Riddelldebuild21:20
Riddellis the magic command21:20
Riddellit may well tell you that you don't have everything installed21:21
Riddell" Unmet build dependencies"21:21
Riddellso you need to install them21:21
keepitsimple.orig. file should be in the same dir as kdetoys-4.4.9221:22
userwhy dont use pbuilder instead of installing every dependency into the running system?21:22
Riddellkdetoys_4.4.92.orig.tar.bz2 should be outside the kdetoys-4.4.92/ directory21:22
acemoorats, no debuild for arch.. i'll just read along further then21:23
Riddellpbuilder is a nifty script that will set up a chroot and install the packages and build the package21:23
Riddellbut it's only useful for a final check 21:23
keepitsimpleI forgot the ? sorry21:23
macoRiddell: apt-get build-dep kdetoys <-- might help at least get close on build deps (and should do the trick if there are no new deps)21:23
Riddellpbuilder isn't useful for doing a first package because you can't check everything is correct at the end21:23
userokay21:24
userdebuild says: This package has a Debian revision number but there does not seem to be an appropriate original tar file or .orig directory in the parent directory; (expected one of kdetoys_4.4.90.orig.tar.gz, kdetoys_4.4.90.orig.tar.bz2, kdetoys_4.4.90.orig.tar.lzma or kdetoys-4.4.92.orig) continue anyway? (y/n)21:24
Riddellah hah21:25
Riddellyou need the right version number in debian/changelog21:25
QuintasanI think dch didn't bump the version21:25
tsviWhere do I get kde-sc-dev-latest (>= 4:4.4.90) libphonon-dev (>> 4:4.7.0really)21:25
Riddell4:4.4.92-0ubuntu1~ppa1 is it21:25
keepitsimpleuser: try this-> mv kdetoys_4.4.92.orig.tar.bz2 kdetoys_4.4.90.orig.tar.bz221:26
Riddelltsvi: from the 4.5 repository http://www.kubuntu.org/node/15721:27
userchanging the version number in the changelog file did it21:27
Quintasankeepitsimple: it's a BAD practice to do this :P21:27
Riddellour version numbers are a little fiddly21:27
Riddell4:4.4.92-0ubuntu1~ppa1  4 is the epoch and only gets changed if you mess up.  4.4.92 is the upstream version21:27
Riddell-0 is the debian version21:28
Riddellwe often take packages from debian in which case it would be set to 121:28
Riddellin this case the package isn't from debian so it's a 021:28
Riddellthen the ubuntu version number21:28
Riddellthen the PPA number because we usually put packages in a PPA before uploading to the main archive21:29
Riddellfor the changelog text I usually put "New upstream release"21:29
Riddellanyone got it compiling?21:29
angelus85wip21:29
* Quintasan <3 pbuilder21:30
QuintasanRiddell: will we bump epoch if we get to KDE 5 someday? :D21:31
tsviWhoaa  kde-sc-dev-latest (>= 4:4.4.90) libphonon-dev (>> 4:4.7.0really) is a serious download hopefully will be ready by the end of the session21:31
Quintasantsvi: well, it downloads developments files for KDE, that's a ton of headers :)21:32
RiddellQuintasan: no, we'll only bump the epoch if KDE decides to change version format.  maybe they'll change to KDE 04.10 after the month and year, then we'd need to change the epoch21:32
userUnmet build dependencies: kde-sc-dev-latest (>= 4:4.4.90) quilt libphonon-dev (>> 4:4.7.0really)21:32
user:)21:32
RiddellI got it compiled!21:33
RiddellI think that means I win21:33
=== simion314 is now known as simion3142
userlol21:33
Riddellthe next thing I do is check over the build log which is in the directory above the sources and make sure the cmake output doesn't complain about anything missing21:34
Riddellnew KDE Software releases add new programmes and often need new libraries21:34
Riddellthen I need to check that all the files are actually packaged21:34
Riddellthe debian/*install lists which files should go into which .deb package21:35
Riddelloften new files are added for a new release21:35
Riddellso you can run this command to check if there's any missing    dh_install --list-missing 21:35
RiddellI can also run lintian over each of the .deb packages21:35
Riddelllintian runs lots of checks on .deb packages for common errors21:36
Riddellsome of which I care about and some I don't care so much21:36
RiddellI get this warning for example21:36
RiddellW: kteatime: binary-without-manpage usr/bin/kteatime21:36
Riddellwell I think kteatime is a trivial enough application with few enough users that it's not worth my time making a man page21:37
Riddellbut then if we get lots of confused kteatime users who don't like kubuntu because they can't understand how to time their tea I'll have nobody to blame but myself21:37
acemooIf it makes you feel better, feel free to blame me21:39
acemoo;)21:39
Quintasanacemoo: you know you will get tons of kteatime fanatics (including me) standing at your doors? :P21:39
Riddellso now it builds and you know there's no files missed out of the .debs then you can use pbuilder21:40
Riddellwhich will make sure it builds in a clean environment21:40
Riddelloften my computer will have packages already installed which are missed out of the build-dependencies21:40
Riddelland pbuilder will catch that21:40
Riddellit can be quite time consuming though21:40
acemooQuintasan: i like kteatime.. but i have too many different teas that i dont know the times of... so i stopped using kteatime and i just leave the tea in the water for ages...21:41
Riddellfinal step is to build the source package and upload21:41
Riddelldebuild -S  will build the source package21:41
tsviFinished getting all dependencies ... Finally21:42
Riddella source package in debian packaging is made up of the upstream .orig.tar.gz , the debian.tar.gz and a .dsc which is meta data with md5sums 21:42
Riddellthe debian.tar.gz contains the debian/ directory21:43
Riddellyou can upload it to your PPA if you want to let people use it21:43
Riddelleveryone with a launchpad account can have a PPA21:44
Riddellbut you will need to have your gpg key in launchpad21:44
tsviSo you have your deb file which is essentially a tarball containing these 3 files?21:45
Riddellno the .deb files are the binary packages21:45
Riddellyou can use lesspipe to view their contents21:45
Riddelllesspipe kteatime_4.4.92-0ubuntu1~ppa1_amd64.deb21:45
Riddellthe source part is kdetoys_4.4.92.orig.tar.bz2 kdetoys_4.4.92-0ubuntu1~ppa1.debian.tar.gz and kdetoys_4.4.92-0ubuntu1~ppa1.dsc21:46
Riddellif you do get the source package built you can sign it with your gpg key21:48
Riddelldebsign -kjriddell@ubuntu.com kdetoys_4.4.92-0ubuntu1~ppa1_source.changes21:49
Riddellusing the e-mail address on your gpg key21:49
Riddellthen put it into your launchpad PPA21:49
Riddelldput ppa:jr kdetoys_4.4.92-0ubuntu1~ppa1_source.changes21:49
Riddellusing your launchpad username in place of "jr"21:50
Riddelllaunchpad will then build the package and make it available hopefully in less than an hour21:50
tsviSo launchpad uses the sources to give me the .deb file, I finally got it21:51
Riddellyes21:51
tsviTook me 5 years of using ubuntu to figure this out I can't believe it21:51
Riddelland it'll compile it on i386 and amd6421:51
Riddelland if I upload it to the main ubuntu archive it'll compile on arm and the other weird architectures21:52
Riddellthe way you get privilages to upload to the main archive is fairly straight forward21:53
Riddellyou contribute to kubuntu (or another part of ubuntu) for a while21:53
Riddellthen you can apply to be a kubuntu member21:53
Riddellwhich involved turning up a meeting and being grilled to be sure your heart is really in the right place for us21:54
Riddellthen you contribute for a bit more21:54
Riddellthen you can apply to be a kubuntu dev21:54
Quintasanthen you get grilled once again21:54
Riddellwhich involves turning up a meeting and being grilled to be sure your packaging skills are elite ninja standard21:54
acemooso.. how many ninja's does kubuntu has now?21:55
userbtw: is there a good packaging documentation somewhere? ^^21:55
Riddelluser: there's lots of documentation out there21:55
Quintasanuser: yes, ninja typical environment -> https://wiki.kubuntu.org/Kubuntu/Ninjas/BuildEnvironment21:55
Riddelldebian new maintainer guide and ubuntu packaging guide for example21:55
tsviI get debsign: gpg error occurred!  Aborting....21:56
Quintasanuser: Packaging Complete Guide -> https://wiki.ubuntu.com/PackagingGuide/Complete21:56
RiddellI've never been too impressed by either though21:56
Riddelltsvi: that means it's all compiled and finished21:56
Riddelltsvi: it just means you don't have a gpg key with a name and e-mail matching what you used in debian/changelog21:56
acemoolol...  even the url has ninjas.. i thought riddell made it up21:56
Quintasanuser: though that ninja wiki is a little bit out of date21:56
Riddellhttps://edge.launchpad.net/~kubuntu-ninjas/+members  21 members21:56
Riddellsome are more active than others of course21:57
Riddelland some have their special ninjas skills, like NCommander and his arm fixation21:57
keepitsimpletsvi: you have to add in your ~/.bashrc two lines, export DEBFULLNAME="your name" and export DEBEMAIL="name@hostname.whatever"21:57
angelus85what if i want to recompile some binary with different options?21:58
CIA-99[libqapt] jmthomas * 1147313 * trunk/playground/libs/libqapt/src/ (backend.cpp backend.h) - Add two methods for retreiving the download size and the required disk space for marked changes - Add a method for returning the human-readable label of a package origin, given a QApt::Package pointer.21:58
Riddellangelus85: then you have to change debian/rules which is a Makefile that tells the package how to actually build21:58
Riddellangelus85: for the most part we just include standard stuff in debian/rules and it'll do the right thing21:59
tsviWhere is the build log?21:59
angelus85i was trying to compile pam face recognition21:59
angelus85but i had some problems with some libraries21:59
angelus85so that's why i was asking21:59
angelus85(segfault of course)21:59
CIA-99[muon] jmthomas * 1147314 * trunk/playground/sysadmin/muon/src/StatusWidget.cpp Use the new methods in LibQApt to show in the statusbar how much is to be downloaded/installed22:00
tsviWhere does debuild put the build log?22:00
Riddelltsvi: kdetoys_4.4.92-0ubuntu1~ppa1_amd64.build in the directory above22:01
Riddelllet's have a wee break before the next session22:02
Riddellif you do fancy helping the ninjas with the next KDE release, just stick on this channel22:02
Riddellok22:06
Riddellcoming up next22:06
Riddellis our second guest speaker22:06
RiddellI'm very pleased to introduce Johan thelin top Qt developer22:06
Riddelltake it away e8johan 22:06
e8johan:-)22:06
e8johanthanks22:06
* Quintasan claps22:06
e8johanso, let me start by saying hi all22:07
acemoohi johan22:07
e8johanmy plan today (tonight) is to go through the creation of a 22:07
matrixxhi o/22:07
e8johanvery simple application using Qt Creator22:07
e8johanjust to go through the concepts of Qt, getting started and heading in the right direction22:07
e8johanjust a quick question before we start, how many of you have experience from Qt Creator?22:08
matrixxo/22:08
Quintasane8johan: I do, created a small useless app :)22:08
acemoo\o22:08
acemooworked half a year on a project with it22:09
e8johangood to see some hands - so I'll try to stick to the Qt code part, not the tool then22:09
e8johando tell if you want me to point something out to you :-)22:09
e8johaneither way, let's start by firing up Qt Creator22:09
e8johanfrom the first screen you can choose to create a new project - do that22:09
e8johanit'll bring you to a wizard22:09
cmaginaI do, worked through the tutorials and used it for some coding at work (all C though)22:10
e8johanwhat you want to create is a Qt4 Gui Application22:10
NCommanderRiddell: er, I would have tried to phrase that a different way :-/22:10
e8johancmagina: C-coding should be about enough for this - feel free to ask if the C++ is giving you trouble22:10
OutoLumoDone the tutorials, quote long time ago though...22:10
e8johanso, when you have decided which type of project to create, let's name it22:11
e8johanI've called my version listexample22:11
e8johanwhen naming it and choosing a directory, be aware that the project name is the name of a directory22:11
e8johani.e. do not name the directory listexample as well22:11
e8johanthat will just give you double directories22:12
e8johanthe next page of the wizard if interesting as it shows you all of Qt's modules22:12
e8johanfor now, Gui and Core will be just fine, but if you're curious, you can always check this site22:12
RiddellI have Class Information22:12
e8johanhttp://doc.qt.nokia.com/modules.html22:12
acemooI also get class information22:12
cmaginaSame here22:13
e8johanhmm, ok, things might have changed places or something, class info is next for me22:13
e8johanwhat class information does is that it sets up a skeleton project for you22:13
e8johansome code to get started from22:13
cmaginaI believe we are all running the latest beta with Qt Quick22:13
e8johanthe default choice is to use a QMainWindow (in my case)22:13
e8johancmagina: ok, I'm running Qt Creator as packaged from kubuntu22:14
e8johani.e. not bleeding edge, just the default package22:14
e8johanI'm sure that it will be ok either version, just tell me when I say things that seem strange to you :-)22:14
e8johanthe default choice, QMainWindow, is a bit of an over kill for a trivial example22:14
e8johanit is a window with menus, toolbar, statusbar, dockable areas, etc22:15
e8johaneverything that you expect from a document centric desktop application22:15
e8johanthe other two choices are QDialog and QWidget22:15
e8johana QDialog is a window with a result - e.g. yes/no, ok/cancel, etc22:15
e8johanthat is not what we're after, so choose to use a QWidget22:16
e8johanalso, accept the default name of Widget (if you don't want to patch my code snippets all night :-) )22:16
e8johana question to you who are running bleeding edge, do you get modules now? or do you get project management?22:16
Quintasane8johan: project managment22:17
e8johanok, great22:17
cmaginaYup22:17
OutoLumoI'm using the default version, so everything is great for :)22:17
e8johanwe just skip project management for now - it is just versioning - so click finish and you'll get a freshly baked skeleton project22:17
e8johanthe project consists of four files22:17
e8johanmain.cpp, and the h, cpp and ui files for our Widget class22:18
acemoodon't forget the .pro file ;)22:18
e8johanaha! you are right :-)22:18
e8johanlooking inside the pro file, you can even see that it refers to the other files...22:18
acemoospecially important for the people who did not get to choose modules before22:18
e8johanyou are absolutely right, the pro file is where the modules get selected or deselected22:19
e8johanlooking at the Widget class, the cpp and h files define the class to C++, while the ui file defines the user interface22:19
jgeactmodules = QtCore QtNetwork?22:20
e8johanthe ui file really is an XML file, but Qt comes with a visual editor for them22:20
e8johanjgeact: do you get that with the bleeding edge version?22:20
e8johanjgeact: you only need QtCore and QtGui and that is the default choice22:20
acemooi get "QT       += core gui" in qt-creator 2.0 on arch22:20
jgeactok22:20
e8johanacemoo: that sounds about right22:21
e8johandoes everyone have the project with the right modules in place?22:21
cmaginaI have the same as acemoo22:21
Quintasanyup22:21
e8johanyou can try running the application - click the green arrow in the lower left corner and you'll get an empty window22:21
* tsvi ready22:21
e8johan(if all is correct, that is)22:22
acemoooh frick am still double o22:22
=== acemoo is now known as acemo
* Quintasan got it running22:22
e8johanlet's fire up Designer then22:22
Quintasan:)22:22
* alvin uses qtcreator 1.3.1. Looks good22:22
e8johanwe get Designer started by double clicking on the ui file22:22
e8johanthis should give you loads of new panels with your empty window in the middle22:23
OutoLumoI have :-)22:23
* tsvi got it22:23
e8johanthe panels that we are going to use tonight are the widgets box (to the left) and the property editor (to the right)22:23
e8johanif you have fresh installs, you might have loads of other stuff as well - do not be shy when it comes to closing or making them smaller :-)22:24
e8johanyou can always get them back22:24
e8johanyou can see a small screenshot for the application that we will go through over here:22:24
e8johanhttp://www.thelins.se/johan/blog/resources/project-source-kubuntu-tutorial-day/22:24
acemoaww no signals and slots tonight? thats something special i like about Qt:)22:25
e8johan(you can get the full source there as well - but that is cheating)22:25
e8johanacemo: you will get signals and slots22:25
acemo\o/22:25
e8johanacemo: we just need some widgets to get signals from :-)22:25
e8johanin the screenshot you can see three QPushButtons to the right and a QListWidget to the left22:25
e8johantry placing them roughly as in the screenshot in designer22:26
e8johanthen add a vertical spacer underneath the buttons22:26
e8johanthe spacer looks like a spring and acts like one as well - it pushed the buttons to the top of the window22:26
e8johanwhen you have all the widgets in place, click somewhere in the window itself to select it and choose to apply a grid layout22:27
e8johanyou do that form the toolbar, not from the widgets panel22:27
e8johanit can be scary applying layouts - things can get messed up, but then you can just break the layout again from the toolbar and try again22:27
e8johanthe point of a layout - instead of just static coordinates is that widgets can resize for new languages or fonts and that the user can stretch the ui to utilize more screen22:28
e8johanwhen you feel that the design looks about right, try running the application again and resize the window a couple of times22:28
e8johanare everyone keeping up?22:29
Quintasanno problems so far22:29
e8johangreat22:29
cmaginaEverything is great here22:29
e8johanso lets just get names and properties setup22:29
alvinI'm happy too22:29
yiannisyes. Cool! :)22:29
txwikingerhow do I apply th elayout?22:30
e8johandouble click on each of the buttons and give them the right texts22:30
jgeactokey22:30
OutoLumoContext menu -> layout...22:30
e8johantxwikinger: select the window and click the grid (3x3 blue boxes) in the toolbar22:30
acemotxwikinger: right click on the "window" and choose layout -> lay out in a grid22:30
e8johancontext menu should work well too22:30
txwikingerah thanks22:30
e8johanthe idea is that the layout is applied to the container widget. the most common mistake is to select the widget about to be laid out.22:31
acemoe8johan: yep, happened to about everyone in my project :)22:31
* tsvi ready for the next step22:31
e8johanwhen you have given the buttons texts, select them one by one and change the objectName property (at the top) and name them addButton, deleteButton and clearButton22:31
e8johanalso, select the listWidget and look for the selectionMode property22:32
e8johanset it to ExtendedSelection22:32
e8johanwhen all this is done, save the file and open widget.h (just double click it)22:32
e8johanin the header, you see the Widget class being declared22:33
Quintasane8johan: what the Extended Selection does?22:33
e8johanExtendedSelection means that you can make selections using shift and ctrl, instead of just selecting a row at a time22:33
e8johanyou can pick between one item, continous ranges of items, or extended22:34
Quintasanoh, nice22:34
acemowhen using qtcreator 2.0 to find the .h file first click on edit totally left22:34
e8johanthe other options lets the user toggle selected or not by clicking items, or disable selections22:34
acemosince design mode does not shows the file list :)22:34
e8johanacemo: aha22:34
e8johanacemo: sounds like an improvement, that panel tends to eat quite alot of screen22:34
e8johanwhen you are in widget.h, you can see the line Ui::Widget *ui22:35
acemoe8johan: indeed, huge improvement22:35
e8johanthat refers to the design that you just created22:35
e8johanall the widgets are available through the ui variable22:35
e8johanjust an important tip - as we will move between the header and source file quite often - simply press F4 to do that22:36
e8johanso trying that shortcut, you can go to widget.cpp22:36
e8johanin the constructor (i.e. the Widget::Widget function for the C user out there) you can see ui->setupUi being called22:36
e8johanthat creates all the widgets that you just designed22:36
e8johannow for the signals and slots part!22:37
Quintasan@_@22:37
acemo\o/22:37
e8johan:-)22:37
e8johansignals and slots is really what makes Qt tick22:37
jgeact:-))22:37
* Quintasan used to define all widgets within constructor22:37
e8johanit really helps creating reusable code22:37
e8johanQuintasan: this way, you still do, but you let Designer generate the code :-)22:37
* txwikinger wonders where to put the unit tests first :)22:37
acemoe8johan: indeed it does, signals and slots help you save loads of code and headache's22:38
e8johanbasically, signals are emitted when interesting stuff happens22:38
e8johantxwikinger: you need to separate ui from logic :-)22:38
e8johaninteresting stuff can be buttons being clicked, sliders moved, etc22:38
e8johanthey are kind of like events, but at a higher level22:38
e8johan(events are more mouse moved, key pressed, etc)22:38
e8johansignals are always emitted by widgets, but to have something happen, you need to create a slot and connect it to signals22:39
e8johanyou can create any number of signals to a slot, and any number of slots to a signal, etc22:39
e8johanbut, let's focus on the practical side of things22:39
e8johanjumping back to widget.h (remember f4)22:39
e8johanadd a section called private slots:22:40
acemosignals and slots are a bit like the Observable pattern, when something interesting happens with the observable you get informed if you want22:40
e8johanacemo: yes, that is basically what it is, and all QObjects can have observers connected to them22:40
e8johanin that section, add a function declaration for void addClicked()22:40
e8johane.g:22:40
e8johanprivate slots:22:40
e8johan    void addClicked();22:40
e8johandoes everyone feel comfortable adding a section and a function declaration?22:41
Quintasane8johan: Q_OBJECT <--- tutorials define this as some magic, where can I read what it does?22:41
cmaginaYep22:41
angelus85yep22:41
yiannisSo far so good :P22:41
e8johanQuintasan: Q_OBJECT does define the magic that ties all this together, I'll give you a link after this session (remind me - I'm forgetful)22:41
jgeact;-)22:42
acemoQuintasan: that enables the signals and slots, and some other stuff22:42
e8johanso, lets move back to widget.cpp22:42
e8johannow implement the same function, i.e. void Widget::addClicked()22:42
e8johan{22:42
e8johan}22:42
cmaginaYeah, I've looked at what it adds back when I did the tutorials...22:42
e8johanjust to make sure that our connection works, let's just add the line qDebug("Hello"); in the function body22:43
e8johan(qDebug is a bit like printf, but adds \n on its own initiaitve)22:43
e8johannow, in the c'tor, under the setupUi call, let's make the connection22:43
acemoe8johan: i'm used to using qDebug as a cout replacement: qDebug() << "Hello";22:43
e8johanconnect(ui->addButton, SIGNAL(clicked()), this, SLOT(addClicked()));22:43
e8johanrunning the application after this should give you the text Hello each time you click the add button22:44
tsviJust for clarity both the section and the function get defined in the widget class?22:44
e8johantsvi: yes22:44
e8johanclarifying about tsvi's question, add the section to the Widget class22:44
e8johanslots can be defined as private, protected or public and can be considered ordinary functions22:45
e8johanit is perfectly ok to call a slot as any other function22:45
e8johanthe "slots" keyword is just a marker for Qt22:45
e8johandid anyone have any problems creating the connection?22:45
cmaginaWorks here22:45
jgeactno, all ok22:45
e8johanif you do, you will get the error message at run-time22:46
Quintasanauto-completion is awesome22:46
e8johangreat!22:46
e8johanso, let's add some real code to that slot22:46
e8johanfirst, go to the top of widget.cpp and add an include for QInputDialog22:46
e8johannotice the caps and no ending .h22:46
e8johanQt wants to play at the same level as stl :_)22:46
e8johanthe QInputDialog is a class that lets us request basic user input without too much work22:47
e8johanin the addClicked slot, start with:22:47
apacheloggerQuintasan: http://doc.trolltech.com/main-snapshot/metaobjects.html <- about "the magic"22:47
e8johanQString text = QInputDialog::getText(this, "Enter Text", "Text to add:");22:47
Quintasanapachelogger: thanks22:48
e8johan(also, remember to remove the qDebug line)22:48
e8johanapachelogger: thanks, one more memory slot freed in this end :-)22:48
OutoLumorunning fine22:48
apachelogger:)22:48
e8johanthe QString class is Qt's string class22:48
e8johanfull unicode, implicit sharing (read efficient and fast)22:48
e8johanit can also tell the difference between an empty string and no string22:48
e8johanif the input dialog is closed through cancel, we get no string22:49
e8johanwhile the user can still input an empty string and click ok22:49
e8johanwe check this through the isNull method22:49
e8johanif(!text.isNull())22:49
e8johanthen we add the text22:49
e8johan    ui->listWidget->addItem(text);22:50
e8johanrunning the app now should mean that you can add items to the list22:50
e8johancommon operations are often available as slots22:50
e8johanfor example, clearing a list22:50
e8johanreturing to the c'tor, add another connection22:51
e8johanconnect(ui->clearButton, SIGNAL(clicked()), ui->listWidget, SLOT(clear()));22:51
e8johannow you can clear the list as well22:51
e8johannotice that the button can be connected to either our custom Widget, or a QListWidget - the button does not care22:51
e8johanthat is part of the greatness of signals and slots22:51
e8johannow, the only button left is the delete button22:52
Quintasane8johan: clear() is defined by Qt headers?22:52
e8johanQuintasan: yes22:52
Quintasannic22:52
Quintasan+e22:52
e8johanif you press F1 while standing on ui->listWidget, you get the docs22:52
e8johanscroll down to public slots and you'll find it22:52
acemoQuintasan: clear() is a slot just like the add one we just made, but on the QListWidget class22:52
e8johanfor the delete button we will need two slots22:53
e8johanone for the deleting, and one for enabling and disabling it22:53
e8johanit makes no sense to have it enabled when no items are selected22:53
e8johanf1 to the header and add the following slots to the private slots section22:53
e8johanvoid deleteClicked();22:54
e8johan    void updateDeleteEnabled();22:54
e8johanthen jump back to the widget.cpp and add empty function bodies for the two22:54
acemou mean f4 to the header22:54
e8johanf4 to the header, yes, add them then f4 back to the cpp22:54
e8johanoh - wrote f1... sorry22:55
e8johanit is getting late here :-)22:55
acemoe8johan: i was thinking what has the documentation to do with adding my own code :p... yep late here aswell22:55
e8johanin the c'tor, make the following connections22:55
e8johan    connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(deleteClicked()));22:55
e8johan    connect(ui->listWidget, SIGNAL(itemSelectionChanged()), this, SLOT(updateDeleteEnabled()));22:55
e8johanacemo: lol22:55
e8johanthe idea of the updateDeleteEnabled slot is to update the enabled state of the deleteButton22:56
angelus85e8johan: according to what we change the member aka 3rd parameter?22:56
e8johandepending on what is selected22:56
e8johanangelus85: pardon?22:56
angelus85e8johan: the 3rd parameter of connect22:57
CIA-99[libqapt] jmthomas * 1147328 * trunk/playground/libs/libqapt/src/ (backend.cpp backend.h) Some changes necessary for filtering by origin support in muon22:57
angelus85i see it changed22:57
e8johanangleus85: when did it change? it is this for all except clear, where it is ui->listWidget22:57
angelus85sometimes it was this and some others it was ui->listWidget22:57
e8johanah, ok, the 3rd argument is the object that has the slot22:58
acemothe 3rd parameter defines which object to connect to22:58
CIA-99[muon] jmthomas * 1147329 * trunk/playground/sysadmin/muon/src/ (7 files in 2 dirs) "Filter by Origin" support, complete with human-readable repository names.22:58
e8johanwe implement all slots except clear22:58
acemothe 4th being the slot name22:58
e8johanclear is implemented by the QListWidget itself, so then we need to connect the signal to it instead of "this" (i.e. Widget)22:58
e8johanback to updatedeleteEnabled, the connection calls it upon change22:59
e8johanbut we need to call it once at the start, just to get everything right from the start22:59
e8johanso add a call to is in the c'tor after the connections22:59
shtylmanRiddell: will be also be using the new font in kde?22:59
e8johan(this shows how you can call a slot as a function - it just works because it is simply a function)23:00
e8johanso, let's follow that trail and go to the implementation of updateDeleteEnabled23:00
e8johanwe can query how many items are selected through ui->listWidget->selectedItems().count()23:00
e8johanso, let's add the following lines23:00
e8johanif(ui->listWidget->selectedItems().count() == 0)23:00
e8johan        ui->deleteButton->setEnabled(false);23:00
e8johan    else23:00
e8johan        ui->deleteButton->setEnabled(true);23:00
e8johanthis should enable and disable the button as needed23:01
e8johanthen, all that is left is the deleteClicked implementation23:01
e8johanwe can get all the selectedItems from the list widget23:02
e8johanthe beautiful thing is that all items are objects, and if we delete the object, it automagically keeps the list widget updated on this23:02
e8johanso, all we need to do is get them and delete them23:02
e8johan(this also updates the selection, handing the enabled state of the delete button for us)23:02
e8johanso, in the deleteClicked slot, start by adding the following line23:03
e8johanQList<QListWidgetItem*> items = ui->listWidget->selectedItems();23:03
e8johannow we kind of left C territory with templates23:03
e8johanQList<QListWidgetItem*> creates a list of QListWidgetItem pointers23:03
e8johanthat list, items, is initialized to contain all the selectedItems of the listWidget23:04
e8johanQList is one of Qt's collections23:04
e8johanit is the most common to use - there is QVector (quicker indexed lookup, slow insert) and QLinkedList (quick insert, slow indexed lookup) as well23:05
e8johanto iterate over the QList, items, we use the Qt macro for each23:05
e8johanforeach(QListWidgetItem *item, items)23:05
e8johanthis is equivalent to setting up a for loop and having item going over all items of the list23:05
e8johannow, all that is left is to delete the items one by one, i.e.23:06
acemoohh, great!23:06
e8johandelete item;23:06
acemoi didn't knew about that macro yet23:06
tsviqt looking really cute23:06
e8johanacemo: that macro is really great - compared to iterators and whatnot23:06
acemotsvi: you don't pronounce Qt as cute for nothing ;)23:06
e8johanthere is a forever as well - but that has more limited use :-)23:06
Quintasanforeach(QListWidgetItem *item, items)23:07
acemoe8johan: If We weren't done with this school project, i'd go and replace like 150 iterators :p23:07
QuintasanI get ton of errors on this23:07
acemoforever is a while true?23:07
e8johanhaving added these lines of code, you should now have a trivial but working application23:07
e8johanQuintasan: which is the first error?23:07
Quintasanhmm23:07
Quintasancopypasta did the work23:07
e8johan:-)23:08
e8johanif you do run into issues, try comparing your code to the code at http://www.thelins.se/johan/blog/resources/project-source-kubuntu-tutorial-day/23:08
e8johanthat is the cheat sheet :-)23:08
tsviIt worked23:08
e8johanalso, for the docs, try http://doc.qt.nokia.com/latest23:08
e8johantsvi: congratulations!23:08
Quintasanno fun with comparing code, experimenting ftw!23:09
jgeactvery well23:09
cmaginaHaha, works here as well23:09
e8johanin the Qt docs you will find a link "Overviews" at the top, that is a great starting point23:09
e8johanthen I ran into this the other day: http://qt.nokia.com/developer/learning/online/training/modules23:09
e8johanI've not looked at them yet, but I'm told that they're good23:09
e8johannow you all have something that works, it seems, and if you attended the previous session, you can also package it23:10
OutoLumoworks like a charm :)23:10
e8johanso now there are really no excuses to get coding and contributing :-)23:10
apachelogger\o/23:10
acemodid i miss something or should we have the foreach loop empty?23:10
e8johanlooking at the schedule - it also looks as if you have trouble, the next session is the one for you :-D23:11
jgeactno excuse, perfectly23:11
Riddellthanks very much e8johan 23:11
acemoohhh delete item;23:11
acemoofcourse :)23:11
Quintasanthanks e8johan!23:11
Riddellyou can also purchase a copy of Foundations of Qt Development available in all good book shops23:11
e8johanif you do get in trouble, or need other Qt help, you know who I am :-)23:11
yiannisThank's e8johan  :-)23:11
cmaginaThanks e8johan!23:11
jgeacte8johan: when you new book for?23:12
Rcartthanks e8johan! 23:12
e8johanThanks for listening - it was fun!23:12
Riddellby 23:12
e8johanjgeact: not sure...23:12
RiddellJohan Thelin23:12
maxwelliane8johan: I came late, will this transcript be posted somewhere?23:12
Riddellmaxwellian: yes we'll put it on the wiki page23:12
jgeactand , do you like QtCreator?23:12
* matrixx *claps hands*23:12
Riddellhttps://wiki.kubuntu.org/KubuntuTutorialsDay23:12
OutoLumoe8johan: thanks a world :)23:12
acemothanks alot e8johan, i'll think about getting your book ^^ since you managed to learn me something new in a basic tutorial.. :)23:12
Riddellin a couple of minutes we'll start txwikinger's session on beastie hunting23:12
e8johanjgeact: more and more, it is growing on me23:12
maxwellianRiddell: Thanks, I'm using Ubuntu but this looked like great info.  Thanks for the link.23:12
* txwikinger is cleaning his screen from all those qt creator stuff :D23:13
e8johanjgeact: I've always used a term + kate, so I'm not too religous about editors23:13
QuintasanRiddell: well, means there are no good book shops in Poland :D23:13
=== AndIrc_24 is now known as cmagina
jgeactthank you23:13
Riddellnext up...23:15
Riddelltxwikinger is going to talk to us about handing beasties23:15
Riddelltxwikinger is one of our best Kubuntu developers23:16
Riddellgo ahead txwikinger 23:16
txwikingerthanks Riddell23:16
txwikingerok folks.. everybody still fresh for looking for bugs after these exciting sessions about qt ?23:16
Quintasan\o/23:17
txwikingerI will talk a little about our process dealing with bugs in launchpad23:17
txwikingerMost of the process is the same for all packages in our repos23:18
txwikingerSo it does not matter if it is a KDE package or something else23:18
txwikingerHowever, for KDE packages we often don't even get in contact with the bugs if they are send straight to the KDE bug tracker 23:19
txwikingerSo the topic is === What is bug triage? ===23:19
txwikingerThe word triage comes from the French word trier which means sorting, sifting (see http://www.m-w.com/cgi-bin/dictionary?book=Dictionary&va=triage)23:19
txwikingerCommonly it is used in the field of medicine, especially in the context of emergency rooms, disaster situations, basically when limited resources must be allocated to a high number of patients.23:20
txwikingerThis in an analogy that also describes what we do with bug-reports. When they are submitted, they must be checked if the adhere to a certain standard, contain all the necessary information that they can be fixed and be sorted and classified in order to get the right "resource" to work on it.23:20
txwikingerIn some way someone who triages bugs is something like a facilitator or arbitrator. You work with the reporter in order to retrieve as much information as possible. You also work with the developers for kubuntu and ubuntu as well as upstream distributions like KDE and debian and others in providing the information or finding out what information is needed.23:20
txwikingerDue to the fact that all of this concerns people it is very important that bug triage is done with a lot of patience and humility. There are sometimes different interests that need to be mitigated when decisions are made, and it is always the best to be as polite as possible to everybody around (see also Ubuntu CoC https://launchpad.net/codeofconduct/1.0.1)23:21
txwikingeror which ever CoC is active .. I think we actually have a newer one now23:21
txwikingerThe bug triage happens on launchpad https://bugs.launchpad.net/ In order to be able to triage bugs effectively, you must have an account on launchpad.23:21
txwikinger=== There are different elements to triaging bugs ===23:22
txwikinger==== 1) Cleaning up bug reports: ====23:22
txwikingerBugs are often submitted by reporters that do not understand fully the process. On the other hand, the people working with the bugs need efficient access to the information. Therefore it can be very important to clean up the bugs summary to soemthing that is meaningful that in a list of reports someone already understand the main issue of every report in the list. 23:22
txwikingerIt can also be helpful if certain important information is added to the description of the report, since this is the first thing after the summary one would read.23:22
txwikingerLet's look at this bug https://bugs.edge.launchpad.net/kubuntu-ppa/+bug/59917523:24
ubottuLaunchpad bug 599175 in Kubuntu PPA "Amarok doesn't save my layout configuration" [Undecided,New]23:24
Riddellamarok has bugs?23:24
Quintasan:D23:24
RiddellNightrose: you promised it had none!23:25
txwikingerWell.. someone seems to think so23:25
txwikingerHowever, if you look at this report, you see it is not really actionable23:25
txwikingerIt does not give any information about the release of amarok, or Kubuntu23:25
txwikingerIt does not explain very detailed what has been done to create the issue23:26
txwikingerIt explains a little bit the expected result23:26
txwikingerIn this case, we could start to clean up the report by reproducing the issue ourselves and filling in the gaps23:27
txwikingeror we can ask the report to collect more information23:27
txwikinger==== 1) Cleaning up bug reports: ====23:27
txwikingersorry23:27
txwikinger==== 2) Colleting more information in order to be able to triage and/or reproduce and fix a bug ====23:27
txwikingerThis is in my opinion the most important step of bug triage. In an ideal world, a bug report has a description that allows anybody following it to immediately reproduce the bug. That is not always possible, but a good target. It is good practice to see if the description given is sufficient to reproduce or see the problem and if necessary add additional information if the problem is found. 23:28
txwikingerIf you look at https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/102979/comments/2, I had gone through the steps in the description and found actually a workaround for the problem. I have added this information and confirmed that there is really a problem, that anybody can reproduce.23:28
ubottuLaunchpad bug 102979 in ubiquity (Ubuntu) "[kde-ui] next button does not respond to keyboard (dup-of: 46600)" [Low,Triaged]23:28
ubottuLaunchpad bug 46600 in ubiquity (Ubuntu) "cannot select `continue' with keyboard in kde" [Medium,Triaged]23:28
txwikingerSince there was a workaround, I also added it to the main information https://bugs.edge.launchpad.net/ubuntu/+source/ubiquity/+bug/10297923:29
ubottuLaunchpad bug 102979 in ubiquity (Ubuntu) "[kde-ui] next button does not respond to keyboard (dup-of: 46600)" [Low,Triaged]23:30
ubottuLaunchpad bug 46600 in ubiquity (Ubuntu) "cannot select `continue' with keyboard in kde" [Medium,Triaged]23:30
txwikingerThis allows others to now work with the issue while it is solved, and the developers haev more information that they can fix the problem23:30
txwikingerOften this steps includes to ask the right questions to the submitter that allows them to give more accurate information that is needed.23:30
txwikingerAnd we actually have a list of standard reponses which can be used to ask the reporter for more information23:31
txwikinger==== 3) Sorting tasks. ====23:31
txwikinger===== 3a) Assigning the report to the right package =====23:32
txwikingerOften bug reporters do not know which package contains the program they have found a problem in 23:32
txwikingerthey either choose a wrong packages or don't give any package23:33
txwikingerTherefore, an important part of the sorting of the reports is to assign them to the right package. This allows the right people to look at the bugs. Here are good instructions on how to find the right package to assign a bug to:23:33
txwikingerhttps://wiki.ubuntu.com/Bugs/FindRightPackage23:33
txwikinger===== 3b) Entering the correct status: =====23:34
txwikingerhttps://wiki.ubuntu.com/Bugs/CommonTasks#Setting Status gives an overwiew of the different states a report can have. For the triage, the essential states are New, Incomplete, Confirmed and Invalid.23:35
txwikingerwell.. unfortunately the wiki link inside the page does not work correctly here23:35
txwikingerit is section 9 on the page23:35
txwikingerIt is important to make sure that the status of any report is set correctly because this is one of the most important filter criteria for people working on bugs23:36
txwikingerEvery report start with the state New. When somebody starts to triage it and more information is necessary it will be set in the state incomplete until all the information is in the report.23:36
txwikingerWenn information is missing like in the amarok bug before, the status would be set to incomplete23:37
txwikingerWhen all the information is in the report and the bug can be reproduced it will be set to the state Confirmed.23:37
txwikingerOr if the triager is part of the bughelper team, it would be set to triaged23:38
Riddellso anyone can set confirmed but only elite people can set it to triaged?23:38
txwikingeronly people who have gone through the mentorship program for the bugsquad can set the status to triaged23:39
Riddellor people in (k)ubuntu-dev?23:40
txwikingerhowever, it is not very difficult to be accepted there, we just want to make sure that people know the policies and have read the relevant wiki pages23:40
txwikingeryes developers have the access too AFAIK23:40
txwikingerHowever, something very important, reporters should not set their own reports to confirmed or triaged in most cases23:41
txwikingerThis forces a second pair of eyes to look over the issue and maybe weed out odd issues in one particular installation23:41
txwikingerA lot of reports will turn out either not to be bugs, or it is impossible to collect the necessary information that the report has a positive effect, i.e really helps to solve a problem. Sometimes reporters will not respond for request for the information needed, and it is not feasible or possible to recreate it yourself. In these cases the state will be changed to invalid.23:42
txwikingerWith all those state changes always keep in mind the consequences. We do not want to unnecessarily mark reports invalid because of laziness. A report might contain crucial information to solve a problem, sometimes not understood to the person that triages it. Therefore, we do not close report lightly in this way. We always want to make sure the report has all the necessary information to be set for the next state.23:42
txwikingerIf you find that a bug actually has been fixed in a current release it would be set to fixed released23:43
txwikingerhowever, most bugs are set automatically to this state when they are mentioned in the changelog that is uploaded with the new package23:44
txwikinger==== 4) Duplicates ====23:44
txwikingerWhile reporters are encouraged to first look for similar or identical problems in the bug tracker, it is inevidable that we get a lot of duplicate reports. Therefore a very important step during the information collection is to see if there is already another report. If this is the case, the report is linked to the original report 23:44
txwikingermore info is at https://wiki.ubuntu.com/Bugs/CommonTasks#Duplicates23:45
macotxwikinger: the team that can set triaged is BugControl23:45
txwikingermaco: yes that is right23:45
txwikingerlooking for duplicates is very important in the bug triage process23:46
txwikingerbecause it helps to connect all the information together that is needed to solve a problem, and prevents duplicate efforts23:47
txwikinger==== 5) Upstream reports: ====23:47
txwikingerThis is also in particular important for KDE packages, but is very good practice in general23:47
txwikingerOften we will deal with issues that are problems in upstream packages. We are working very close with the upstream distros and it is a mutual benefit for everybody to get bug fixes introduced as high upstream as possible. For Kubuntu, KDE is in particular of interest. Here is an example of this https://bugs.launchpad.net/kdebase/+bug/9615123:47
ubottuLaunchpad bug 96151 in KDE Base "kcmclock does not change to correct location" [Unknown,Fix released]23:47
txwikingerIn such cases you either find an already existing report in the upstream bugtracker and add it to the report, or you create a new report in the upstream bug tracker and add that one. Here are the instructions how to do this https://wiki.ubuntu.com/Bugs/HowToTriage#head-ab0eb9d7731fa877b5fc866eedc4c312dab50ee723:48
txwikingerBasically you choose the upstream project (KDE in this case) an add the url to the particular bug in their tracker. LP will then update periodically the state of the report in the upstream tracker.23:48
txwikinger==== 6) Standard Responses ====23:49
txwikingerOne thing that helps a lot, especially to maintain a polite and collaborative atmosphere are standard responses that can be adjusted to the particular situation.23:49
txwikingerHere are lots of such responses for various situations: https://wiki.ubuntu.com/Bugs/Responses23:49
txwikingerUsually 90% of all bugs looked at for instance bug days can be dealt with with any of those standard responses23:51
txwikinger==== 7) Support Requests ====23:51
txwikingerSometimes bug reports turn out to be really support requests. Reporters should be gently nudged to the support tracker in launchpad. It is certainly beneficial if inexperienced users are guided by the people that help to support them to filter out all the issues that are not really bugs. It is very easy to create a bug report linked to an existing question if it turns out to be such.23:51
txwikingerIt is the button/link on the top right side "Convert to a question"23:52
txwikingerThis makes the issue available at https://answers.launchpad.net/ubuntu/23:53
txwikingerSimilarily, people who answer such questions can convert a question into a bug if this should be necessary23:53
txwikinger==== 8) Bug Days ====23:53
txwikingerWe have currently, weekly bug days where there is special focus on a particular class of bugs. Information can be found here: https://wiki.ubuntu.com/UbuntuBugDay23:54
Riddellare bug days always on the same day of the week?23:54
txwikingerYes currently the ubuntu Bug day is Thursdays23:55
txwikingerhttps://wiki.ubuntu.com/UbuntuBugDay/2010070823:55
txwikingerthis is the next day - tomorrow23:55
txwikingerI also will as often as I get to it provide a more Kubuntu focus Bug Day on Mondays23:55
txwikingerSo Monday 12th should be the next one for that23:56
txwikingerThe bug days are also announced in different mailing lists and I believe in the UWN23:56
txwikingerIf there are requests for which packages need some love in this way, please feel free to contact me with it23:56
txwikinger==== 9) The IRC channel: #ubuntu-bugs ====23:57
txwikingerThe main channel to find help or other folks working on bugs is the channel above23:57
txwikingerWe have also a Kubuntu channel at #kubuntu-bugs23:58
txwikingerand there are some other channels too, for instance the German Kubuntu team has a channel at #kubuntu-de-bugs23:58
txwikingerFor people who like to work a little bit on bugs every day, there is a five bugs a day effort23:59

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!