/srv/irclogs.ubuntu.com/2011/04/15/#ubuntu-classroom.txt

=== yofel_ is now known as yofel
* obengdako is away: Away obengdako is idling about11:45
* obengdako is back (gone 00:00:06)11:45
* soreau is wondering: why some clients allow away/back messages11:46
* obengdako i allowed mine to do so soreau 11:47
soreauobengdako: They are really useless and annoying messages11:48
obengdakosoreau, i know i just wanted to let those i chat with know when i've stepped away from the pc11:49
soreauHint: No one cares if you are there or not11:49
soreauThey certainly dont need message to proclaim absence or presence. If you are talking, they will know you you are at your computer11:50
Pendulumobengdako: it's considered rude to do public away messages like that11:50
Pendulumplease don't do them11:51
Pendulumif you set normal /away then people can use /whois to see if you're around or not11:51
Pendulum(or if they PM you, they'll get a message that you're away)11:51
soreauYes, that is much more concise way of putting it11:51
obengdakoPendulum, oh really then i'll disable11:51
obengdakoPendulum, so i use the command "/away" instead?11:51
Pendulumyep11:52
Pendulum /away <your reason>11:52
soreauand /back11:52
Pendulum(or just /away)11:52
* obengdako is away: trying the away feature11:52
JanCthe problem is not with 1 person doing them, but everybody starts to use those messages after some time 90% of the traffic in the channel is only that  ;)11:52
soreauRight, and its useless messages no one needs to read11:52
* obengdako is back (gone 00:00:29)11:53
obengdakookay but it still shows up in the channel Pendulum11:53
JanCobengdako: seems like you have a script or alias or something that overrides teh default /away11:53
Pendulumobengdako: what IRC client do you use?11:53
obengdakoxchat Pendulum11:54
obengdakoi changed some of the away settings11:54
obengdakookay now it is working Pendulum i changed the announce away setting11:54
obengdakonow i'm away11:55
obengdakohehe11:55
Pendulumthanks!11:55
soreauCool11:55
obengdakocheck my whois and tell me if i did it right11:55
obengdakoand what is my reason11:55
obengdakoPendulum, please check my status and my reason i want to be sure those interested can tell i'm away11:56
soreau* [obengdako] is away (hehe)11:56
Pendulumobengdako: got the same thing as soreau11:56
Pendulumthank you for fixing it so it doesn't announce11:56
obengdakookay thanks Pendulum soreau11:56
soreauno problem11:56
JanCBTW: in xchat you can right-click a nick to see the away message11:57
obengdakolol11:57
obengdakoso no one really uses away here in irc even when they are away?11:59
friez_Hi13:06
dpmThe last Ubuntu App Developer Week day is starting in ~10 minutes \o/16:50
zenzedoonsalut a tous16:52
zenzedoonhello all16:55
jryannelHi16:55
ghost69hi16:59
dpmOk everyone, welcome to the last day of an Ubuntu App Developer Week packed with interesting content and speakers!17:00
dpmLet's welcome jryannel once more, who is going to talk about how to extend Qt Quick with C++17:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu App Developer Week - Current Session: Qt Quick: Extend with C++ - Instructors: jryannel
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/04/15/%23ubuntu-classroom.html following the conclusion of the session.17:01
jryannelHi, I'm from QtDF my name is Juergen Bocklage-Ryannel17:01
jryannelI'm mainly doing training and training material17:02
jryanneltoday I would like to talk about Qt Quick and how you can extend it with c++17:02
jryannelFor all of you who don't know Qt Quick...17:02
jryannelit's a declarative language build on top of Qt C++ to create great user interfaces17:03
jryannelI prepared a small project for today17:03
jryannelplease download it from: https://github.com/jryannel/ubuntu-qtquick-webinar17:03
jryannelI will try to guide you through the project. While you are downloading I will tell you something about Qt Quick and C++17:04
jryannelDon't worry if you can't download you will also understand without17:04
jryannelQt Quick is based on a Qt module called QtDeclarative17:05
ClassBotsaimanoj asked: how to download the project?17:05
jryannelPlease go to: https://github.com/jryannel/ubuntu-qtquick-webinar17:05
jryannelyou need to have git installed17:05
jryannelor grab the zip file under downloads17:06
jryannelQtDeclarative uses our graphicsview (a 2.5d canvas based on graphics items)17:06
jryannelQtDeclarative is a ui runtime17:08
jryannelit contains an QtDeclarativeEngine which will interpret your qml file17:08
jryanneland a QtDeclarativeView which will paint the items17:08
jryannelIf you open the project (QtCreator ->Open Project) QmlCppExample.pro in17:09
jryannelubuntu-qtquick-webinar/QmlCppExample source tree17:09
jryannelYou will see the project files.17:10
jryannelPlease open the QmlCppExample.pro file17:10
jryannelin the .pro file I added "QT += gui declarative"17:10
jryannelThis is to make the project aware we want to use the QtDeclarative modue17:11
jryannelNow we can use the module in the main.cpp17:12
jryannelPlease open the main.cpp file17:12
jryannelThere we create a view "QDeclarativeView view;" and set the17:12
jryannelqml source with "view.setSource(QUrl::fromLocalFile("main.qml"));"17:12
jryannelAs usual in qt you need also call show " view.show();"17:13
jryannelYou will find the main.qml file in "Other Files" in Qt Creator17:13
jryannelIt's a simple Rectangle with a blue color and a MoouseArea, which doesn't do anything currently17:14
jryannelJust try to run the project17:14
jryannelfor people which don't use qt creator...17:14
jryannelqmake; make; ./QmlExampleCpp17:15
jryannelYou need to have Qt 4.7 installed and in you rpath17:15
jryannelIf you get an error running the project in creator, you need to uncheck the shadow build17:15
jryannelThis is on the side-bar under the Projects tab17:16
jryannelJust uncheck there "Shadow build"17:16
jryannelIf you run the project, you see a blue window, which is our blue Rectangle17:16
jryannelIn our project we would like now to change the color from c++ side17:17
jryannelYou need to uncomment the code between  //1{ ... //1} markers17:18
jryannelin main.cpp and main.qml17:18
jryannelAlso comment the code between //{0 markers in qml17:18
jryannelin main.cpp the line "view.rootContext()->setContextProperty("value", QColor("green"));"17:18
jryannelpushes a property "value" into our rectangle with the value of the color green17:19
jryannelWe access the value in our qml file with "color: value"17:20
jryannelThis right side value actually comes form the c++ side.17:20
jryannelSo far so easy17:20
jryannelNow we want to push something more complicated into our declarative environment,17:21
jryannela QObject which has a value, which again is a color.17:21
jryannelPlease comment the code between //{1 markers and uncomment the //{2 markers17:22
jryannelin main.cpp and main.qml17:22
jryannelWe have a class derived from QObject called ValueObject which contains a value property17:22
jryannelIf you look up the valueobject.h file you can see how you declare properties for qml17:23
jryannelYou have a setValue(...) a value() method and17:23
jryannela valueChanged() signal17:24
jryannelall 3 are required for a read/write property17:24
jryannelWe make them aware to the object as property with...17:24
jryannelQ_PROPERTY(QColor value READ value WRITE setValue NOTIFY valueChanged)17:24
jryannelThis says, make a property of type QColor named color ...17:24
jryannelthe read method is the value() method,17:25
jryannelthe write method is the setValue(...) method17:25
jryanneland to notify qml about changes use the valueChanged() signal17:25
jryannelAll methods are pretty simple, the only one worth mentioning is... setValue(...)17:26
jryannelPlease have a look in the valueobject.cpp file for the setValue implementation17:26
jryannel    if(_value != value) {17:26
jryannel        _value = value;17:26
jryannel        emit valueChanged();17:26
jryannel    }17:26
jryannelThe if ( ... ) is a guard to avoid loops.17:27
jryannelOnly if the value has really changed you should emit the changed signal. You need to obey this rule, otherwise you can get infinite change loops17:28
jryannelSo now we have q ValueObject with a value property ready to be used in qml17:28
jryannelIn main.cpp we create a object of this value with: "ValueObject* value = new ValueObject(QApplication::instance());"17:28
jryanneland push it into qml with "view.rootContext()->setContextProperty("valueObject", value);"17:29
jryannelThis says, make our value object known to qml as "valueObject"17:29
jryannelSo we can use it now in our main.qml file17:30
jryannel"color: valueObject.value"17:30
jryannelYou should see a blue rectangle. You can change the color simple by changing the color in valueobject.cpp (look for  _value(Qt::blue)17:31
jryannelAnother way to change it is inside qml. Here we use the mouse area17:31
jryannel"onClicked: valueObject.value = "yellow"" will make our valueObject color property change to yellow17:32
jryannelThis change is cascaded to our rectangle17:32
jryannelremember we have our rectangles color bound to "color: valueObject.value"17:32
jryannelSo when you click on the rectangle the onClicked handler is called and the color should change to yellow17:33
jryannelI hope you can still follow me :)17:33
jryannelNext case would be we would instead of a simple property, we want to create a new qml element.17:33
jryannelWe want to have a ValueObject element in qml, where we can get the color value from.17:34
jryannelFor this please comment the //{2 marker code and uncomment the //3{ markers code17:34
jryannelSo instead to push an object, we want to register a new type to qml.17:35
jryannelLook in the main.cpp file...17:35
jryannelHere we find: "qmlRegisterType<ValueObject>("Application", 1, 0, "ValueElement");"17:35
jryannelThis line says, register the type ValueObject under the module name "Application" in version 1.0 as ValueElement element17:36
jryannelSo now we have in a module Application a new qml element calles ValueElement17:37
jryannelLet's see how we can use it: open the main.qml file17:37
jryannelThe line "import Application 1.0" imports our new module17:37
jryannelwhich we registered with the qmlRegisterType from c++ code17:38
jryannelSure you can have many elements inside one module.17:38
jryannelWe use the new element with "ValueElement { id: valueElement }"17:38
jryannelOur new element is now accessible under the id: valueElement.17:39
jryannelAs this is a new element you can create as many of them as you want17:39
jryannelwith "color: valueElement.value" we access the color of our new element, by the id17:39
jryanneland in our mouse area we can change the color using "onClicked: valueElement.value = "red""17:40
jryannelI hope you get the idea17:40
jryannelJus to recap...17:40
jryannelYou can push simple properties into qml, complex properties (e.g. objects)17:41
jryanneland also new elements.17:41
jryannelBut this is just the start...17:41
jryannelYou can create own elements which can paint, for example an ellipse17:42
jryannelFor this you would need to derive a class from QDeclarativeItem17:43
jryannelBut I think we are running out of time to show this here...17:44
jryannelSo I post some links with comments17:44
jryannelhave a look at :http://qt.nokia.com/developer/learning/online/training/materials/qt-essentials-qt-quick-edition for the "Training Module Integrating QML with C++ from"17:44
jryannelThis explains how to create a simple ellipse item and adds on this more complicated stuff, e.g creating other types, using enums, ...17:45
jryannelYou you want to learn more about what we did currently please read: Qt Declarative Binding17:45
jryannelhttp://doc.qt.nokia.com/4.7-snapshot/qtbinding.html17:45
jryanneland Extending QML Functionalities using C++17:45
jryannelhttp://doc.qt.nokia.com/4.7-snapshot/qml-extending.html17:45
jryannelYou can also create qml modules as plugins17:46
jryannelThis is explained in the training module, but also in QDeclarativeExtensionPlugin Class Reference17:46
jryannelhttp://doc.qt.nokia.com/4.7-snapshot/qdeclarativeextensionplugin.html#details17:46
jryannelIf you want to mix traditional widget code and qml please look at: Integrating QML Code with Existing Qt UI Code17:46
jryannelhttp://doc.qt.nokia.com/4.7-snapshot/qml-integration.html17:47
jryannelIf you want to see how the Qt developers have written their declarative items, checkout the qt source code and navigate to: /src/declarative/graphicsitems/17:47
jryannelThere you find the code for the Item qml element in "qdeclarativeitem.h"17:48
jryannelAnd for the Rectangle element in "qdeclarativerectangle_p.h"17:48
jryannelPlease note the rectangle has a _p in the name, which declares it as private. So you can't derive from it in c++.17:49
jryannelOnly the QDeclarativeItem class is meant to be derived17:49
jryannelI would recommend you checkout the Example: Minehunt17:49
jryannelhttp://doc.qt.nokia.com/4.7-snapshot/demos-declarative-minehunt.html17:49
jryannelThis shows how to make a minehunt game in qml, where the game logic is in C++17:50
jryannelYou find other examples at: More Examples:17:50
jryannelhttp://doc.qt.nokia.com/4.7-snapshot/qdeclarativeexamples.html17:50
jryannelFrom the DevDays 2010 in Munich we have also a video, which explains QtQuick and C++ very nicely: TechTalk Developer Days 201017:51
jryannelhttp://qt.nokia.com/developer/learning/online/talks/developerdays2010/tech-talks/qt-quick-for-c-developers17:51
jryannelThis closes my talk on Extending Qt Quick with C++.17:51
jryannelI hope some of you where able to compile the example and get an idea about how qml and C++ can work together.17:52
jryannelRemember you can use JavaScript in QML, but you should not make to much use of it for performance reasons.17:52
jryannelBut this truly depends where you run your code.17:53
jryannelA tip at the end, you can also embed qml files as resource files in your executable.17:53
jryannelBy this deployment get's much easier17:53
jryannelI would like to see how someone uses Qt Quick with a WebFramework like Rails or Django17:54
jryannelQtQuick is network transparent so you can load qml files form a server or let them dynamically generate by a webframework :)17:55
jryannelOkay take care and I leave the stage for the next session. Bye!17:55
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu App Developer Week - Current Session: Phonon: Multimedia in Qt - Instructors: apachelogger
dpmYou'll know him not only for his good looks and legendary coding skills, but also for having rocked this AppDeveloper Week: there he is - KDE/Kubuntu developer apachelogger talking about how to write a multimedia app in virtually no time!18:02
dpmapachelogger, let's roll!18:03
apachelogger:D18:03
apacheloggerthanks dpm18:03
apacheloggerbonjour, ahoy and welcome everyone!18:03
apachelogger...for the third time this week ;)18:04
apacheloggerToday's special on the menu: Phonon, the most awesome terrific super cool magical unicorn multimedia abstraction library ever!18:04
apacheloggerFirst let's get dependencies sorted out as we will have a bit of coding later on.18:05
apacheloggerIf you like GStreamer you might want to use this command:18:05
apacheloggersudo apt-get install phonon-backend-gstreamer libphonon-dev qt4-qmake libqt4-dev build-essential18:05
apacheloggerIf you like VLC you might however want this one:18:05
apacheloggersudo apt-get install phonon-backend-vlc libphonon-dev qt4-qmake libqt4-dev build-essential18:05
apacheloggerIf you have a very old version of Ubuntu OR like xine:18:06
apacheloggersudo apt-get install phonon-backend-xine libphonon-dev qt4-qmake libqt4-dev build-essential18:06
apacheloggerAt any rate a simple text editor will suffice for the editing part ... it is all nicely prepared for copy and paste :D18:06
apacheloggerShould there be any questions, please just drop your QUESTION: in #ubuntu-classroom-chat at any point.18:07
apacheloggerBut enough of that nonesense.18:07
apacheloggerLet us talk about Phonon \o/18:07
apacheloggerPhonon is a multimedia abstraction library powered by pluggable backend components, adapting the Phonon API to specific multimedia frameworks/libraries.18:07
apachelogger^ I actually made that description up just 5 minutes ago, though it captures Phonon pretty well, plus it got buzz word factor ;)18:08
apacheloggerPrimarily Phonon is an abstraction layer between multimedia consuming applications (such as music players, games or sound notification systems) and a specific multimedia library (GStreamer, VLC, Xine, Helix, QuickTime, DirectShow, Microsoft Media Foundation, etc.)18:09
apacheloggerPossibly the fact that I listed 7 of such libraries and yet could not resist appending an 'etc' might give you an idea of why exactly abstraction makes sense.18:10
apacheloggerWho seriously would want to maintain good multimedia experience on >3 operating systems?18:11
apacheloggerWell, the Phonon team, obviously ;)18:11
apacheloggerEspecially in a Qt context you really do not want to make your application depend on one of those 300^31000 libraries for multimedia, or  implement your own abstraction system just to become portable to all platforms (read: operating systems) that you might have time to implement support for. Instead we could just do it once ... in Phonon.18:12
apacheloggerAdditionally. If one of these libraries decides to change their API, why would every Qt application developer need to spend their Monday afternoon changing their code to suite the new API?18:13
apacheloggerIf we just as well could do it once ... in Phonon.18:13
apacheloggerI suppose highlighting all the advantages and disadvantages of abstraction is a bit of apointless exercise, so I better stop now.18:14
apacheloggerActually.18:14
apacheloggerDo not let me blind you... Phonon is not the solution to every problem in computer science. It is abstraction after all.18:14
apacheloggerIf you have a look at the Wikipedia artcile on abstraction you will probably read something like "using a common denominator".18:15
=== tubadaz_ is now known as tubadaz
apacheloggerThis implies being more limited. As always ... the general is less specific than the specific ;)18:15
apacheloggerDue to the given constraints of abstraction Phonon does not try "to do it all".18:16
apacheloggerIt does not strive to support every possible use case that might or might not exist for a multimedia library.18:16
apacheloggerInstead we are focusing on the (actually very small) number of key features that are of use to the greatest possible amount of application developers.18:17
=== marcel___ is now known as MAWSpitau
apacheloggerPhonon tries to provide the common set of features you will require in your off the shelf media-enabled applications.18:17
apacheloggerThis ranes from simple (non 3 dimensional) games to video and music players.18:18
apacheloggerIn particular, if you have a look at the Phonon API18:18
apachelogger (i) http://doc.qt.nokia.com/latest/phonon-overview.html18:18
apacheloggeryou will hopefully notice that the core set of features of the key classes are actually able to cover jsut about everything most multimedia applications will ever want to do.18:18
apacheloggerThis of course primarily is playback.18:19
apacheloggerMore precisely: simple playback in the manner of just needing to throw a URL at Phonon and it will try to do something meaningful.18:19
apacheloggerMore advanced features are usually bound to the availability of support in the underlying libraries and thus more dynamic (they might be there, or not, or partially etc.).18:20
apacheloggerThat way it is possible to implement a common denominator and at the same time stay powerful enough to enable terrific media-centric applications such as good looking video players.18:20
apachelogger....talking about video player...18:21
apacheloggerI think it is about time to start doing some coding, because I am getting bored writing all that stuff and would like to copy and paste a bit more ;)18:21
apacheloggerAt FOSDEM I boldly claimed that I could do a video player with 3 lines of Phonon specific code in C++. Whether that is any useful is a question that shall remain unanswered.18:22
apacheloggerIt is however perfect to grasp the basic concept, even if I do not know any application that would only need 3 lines as you usually want to do more engaging things anyway. But oh well... :)18:23
apacheloggerYou can get a template for this from18:23
apachelogger (i) http://people.ubuntu.com/~apachelogger/uadw/04.11/phonon-template.tar.gz18:23
apacheloggerSimple extract it somewhere.18:23
apacheloggerInside you can find a main.cpp, a qmake build file and a video and audio file (or so I hope).18:24
apacheloggerThe code I will present goes into the main.cpp in the main function in between the 2 statements that are already there. Includes are also there, so if all goes well you should be able to build this stuff right away.18:25
apacheloggerTalking about building, you can do that by running18:25
apacheloggerqmake .18:25
apacheloggerand18:25
apacheloggermake18:25
apacheloggerand then18:25
apachelogger./demo18:25
apacheloggerto run the application.18:25
apacheloggerRight then.18:25
apacheloggerLet us start with a simple audio player.18:25
apacheloggerThe first thing you always need when working with phonon is a media object.18:26
apacheloggerWith Phonon you build a thing we call the media graph, which at its root has the media object.18:26
apacheloggerTo the media object you can attach various outputs (AudioOutput, VideoWidget ...) and even 'inject' effects between the media object and the outputs.18:27
apacheloggerVery easy to understand I shall hope.18:27
apacheloggerThe media object is like the heart of every media graph. It controls what file you are currently playing, if you are playing at all, at what time the media is ....18:28
apacheloggerAnd the best thing about the media object is, that it is insanely easy to create ;)18:28
apachelogger (i) Code samples is always indented with 4 spaces18:28
apachelogger    MediaObject mo;18:28
apacheloggerThat did not hurt at all, right?18:29
apacheloggerNow let us also add an AudioOutput while we are at it...18:29
apachelogger    AudioOutput ao;18:29
apacheloggerYou can have many of these media objects, each doing a different thing. For example if you are creating a game, you might want to have a media object (thus graph) for background music and another media object for event sounds (like when a pony rides through the screen).18:30
apacheloggerDue to this we will need to tell our media object that it should be connected to our audio output. Otherwise there will be probably no sound... wouldn't be much of an audio player then ;)18:31
apacheloggerDoing this is very easy, we just call Phonon::createPath(a,b)18:31
apacheloggerlike this:18:31
apachelogger    createPath(&mo, &ao);18:32
apacheloggerNow that we have a media object and an audio output and have told the media object to spit out audio via the audio output, we only need to set a source and ask our nice media object to start playing the source.18:32
apacheloggerAs the template already includes some music (in particular Amarok's first run jingle in case anyone is interested) you can use the following:18:33
apachelogger    mo.setCurrentSource(MediaSource("./first_run_jingle.ogg"));18:33
apachelogger    mo.play();18:33
apacheloggerPutting the pieces together you should have something like this in your main.cpp:18:34
apachelogger    MediaObject mo;18:34
apachelogger    AudioOutput ao;18:34
apachelogger    createPath(&mo, &ao);18:34
apachelogger    mo.setCurrentSource(MediaSource("./first_run_jingle.ogg"));18:34
apachelogger    mo.play();18:34
apacheloggerYou can compile it using the commands mentioned earlier18:34
apacheloggerqmake . && make18:34
apacheloggerIf all goes well you shoudl be able to run ./demo and hear music. I at least do \o/18:34
=== tubadaz is now known as tubadaz_away
apacheloggerNow let us dive into video playback. But I must warn you, it is going to be just as difficult as audio! :O18:36
apacheloggerFirst we create a video widget (which is about the video version of audiooutput), then attach our media object to it.18:36
=== tubadaz_away is now known as tubadaz
apachelogger    VideoWidget vw;18:37
apachelogger    createPath(&mo, &vw);18:37
apacheloggerShould you have worked with Qt before you will probably expect that VideoWidget is a QWidget and needs to be shown explicitly... and you are right.18:37
apacheloggerSimply add18:38
apachelogger    vw.show();18:38
apacheloggerSo that is 3 more lines to get video.18:38
apacheloggerOf course the amarok jingle is only audio, so that source is not going to be any good. I just get a black video window :(18:39
apacheloggerBut fear not, your well prepared instructor has thought of this problem and also bundled a video into the template :P18:39
apacheloggerSimply exchange the previous line where we setCurrentSource() with this one:18:39
apachelogger    mo.setCurrentSource(MediaSource("./konqi_ad1.ogg"));18:39
apacheloggerAgain run18:40
apacheloggermake18:40
apacheloggerand ./demo should now show a video window with a rather old advertisment for the KDE Desktop \o/18:40
apacheloggerBut what is this? We are far away from 3 lines of code! Oh noes!18:41
apacheloggerMaybe I was too daring, claiming such a silly thing :/18:41
apacheloggerOr not... :P18:41
apacheloggerPlease remove all that plunder we carefully pasted into the main.cpp and let us start from scratch.18:42
apacheloggerLet us think about this again.18:42
apacheloggerWe want a video player, we want it to play a video, and we want it to show a video.....18:42
apacheloggermaybe we should do it just like that.18:42
apachelogger    VideoPlayer vp;18:42
apachelogger    vp.play(MediaSource("./konqi_ad1.ogg"));18:42
apachelogger    vp.show();18:42
apacheloggerVoila! A video player (with audio) in 3 lines of code :P18:43
apacheloggeraha!18:44
apacheloggerakshatj_ just complained that I cheated by hardcoding the URL.18:44
apacheloggerI suppose it depends on the POV, I could add Qt magic to get a file open dialog or something and it still would be only 3 lines of phonon specific code ;)18:45
apacheloggerWhich was my original scope for the mission.18:45
apacheloggerWell.18:46
apacheloggerQt to the resuce.18:46
apacheloggerLet us be user friendly here.18:47
apacheloggerExchange our previous hardcoded media source with18:47
apachelogger    MediaSource(QFileDialog::getOpenFileName())18:47
apacheloggerSo that our vp.play warps into:18:47
apachelogger    vp.play(MediaSource(QFileDialog::getOpenFileName()));18:47
apacheloggerThere. Still 3 lines and even with a file selector dialog at start up :)18:48
* apachelogger hopes akshatj_ is happy now :)18:48
apacheloggerJust to go one step further. In the future you will also be able to create a video player without any code *at all*. In about 30 seconds.18:49
apachelogger (i) http://www.youtube.com/watch?v=HrMSIrhFYlY18:49
apacheloggerI hope I was able to interest you in Phonon and would be super happy to see your amazing new applications become even more amazing through superb multimedia :)18:50
apacheloggerMore information on Phonon is avilable in the Qt documentation18:50
apachelogger (i) http://doc.qt.nokia.com/latest/phonon-overview.html18:51
apacheloggerAs well as an overview of the in Qt included classes:18:51
apachelogger (i) http://doc.qt.nokia.com/latest/phonon-module.html18:51
ClassBotThere are 10 minutes remaining in the current session.18:51
apacheloggerClassBot: Thank you, you are the sweetest :)18:52
apacheloggerIf there should be any questions, you now have <10 minutes to get them answered....18:52
apacheloggerMeanwhile I can also tell you a bit about future developments in Phonon. One of the amazing new things we will see appearing in (stable) Phonon hopefully before 2012 is audio and video capturing.18:53
apacheloggerI have been playing around with this a couple of months ago and it is really easy to use and enables the creation of real fun applications I believe.18:54
apacheloggerAlso, so Google and KDE will, we will get superb QML support and simple encoding capabilities.18:55
ClassBotThere are 5 minutes remaining in the current session.18:56
apacheloggerIt would also appear that there are rumors that a new version of the VLC backend component is just around the corner (but don't tell anyone ;))18:56
* apachelogger is out of things ot tell and his fingers hurt18:57
apacheloggerI think we can wrap this up.18:57
apacheloggerThanks for reading and have a nice day :)18:57
apacheloggero/18:57
ronocright19:00
ronochello folks19:00
ronocso the plan for this session is to discuss integrating with the sound menu19:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu App Developer Week - Current Session: Integrating music applications with the Sound Menu - Instructors: ronoc
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/04/15/%23ubuntu-classroom.html following the conclusion of the session.19:01
ronocfirstly I would like to point out that early in the O cycle we will make available via libunity the ability to integrate with the menu19:01
ronocthis will mean developers will not need to worry about mpris interfaces and will just need to use this api19:02
ronocCan I ask which of you here are interested in implementing a compliant player from scratch ?19:02
ronocright so nobody so far, for Maverick we used libindicate for registration with the menu19:03
ronoci reworked this during the natty cycle so as a compliant mpris interface was all that was needed to integrate with the menu19:04
ronocbut there is abit more involved than just raising an mpris interface19:04
ronocmpt went to great lengths to define a preferred workflow with players and the menu so as players can optin or opt out of the menu through their own UI19:05
ronocmore info on all of this can be found on the wiki (wiki.ubuntu.com/SoundMenu)19:05
ronoceach player should allow the user to to have the option to opt in or opt out. The functionality behind all of this is in the indicator-sound's gsettings19:06
ronocagain info on all of this can be found on that wiki page19:06
ronocalso there is a mailing list which you should join if you are developer interested in this19:07
* ronoc digs up the lp page19:07
ronochttps://launchpad.net/~indicator-sound-developers19:08
ronocI use this to announce to devs about upcoming changes19:09
ronocI feel though after this cycle must of the architecture is settled19:09
ronocso no major changes planned for now19:09
ronocback to what I was saying previously, one of my main reasons for moving away from libindicate and using a strictly dbus registration mechanism19:10
ronocwas to reduce / remove any i-s related dependency for clients19:10
ronoci-s = indicator-sound19:10
ronocclients = players = banshee, rhythmbox etc19:11
ronocby doing this it means that players like spotify work seemlessly without any i-s specific work by the spotify team19:11
ronocfurthermore the change to use gsettings as a way of recording blacklisted applications or applications which have previously registered means that the menu dynamically updates when some change has been wrote to the i-s gsettings19:13
ronocthis did happen before with the maverick version19:13
ronocany questions anyone19:13
ronocanything in particular you would like me to go through ?19:13
ronocok, so for clients,the main thing is to raise an mpris interface with the desktop entry properly filled in19:14
ronocthe mechanism works so as when an mpris interface appears on the bus the service attempts to load the desktop file defined on the root mpris interface for the client19:15
ronocif all is good , then the player is inserted in the menu19:15
ronocthe mpris people have been very supportive in redefining the spec over the last year which has really made this all work nicely19:16
ronocwhether you support the playlist interface or not is determined by the service at start up by querying the interfaces listed by your player19:17
ronocif the service finds a playlist interface then its exposes the relevant dbusmenu items19:18
ronocany questions anyone ?19:18
ronocwe had a scrub bar at one point but it was removed due to design clutter which in retrospect was a good call by mpt19:19
ronocthe back end for pulse has been totally refactored this cycle and pretty confident that it should work well now (before it was a bit of fudge due to time restrictions)19:20
ronocalso this cycle I introduce the voip slider19:20
ronocnext cycle we will do work which allows for the voip slider to be added for applications that are not just necessarily voip apps19:21
ronocso gnome-sound-recorder running will trigger the appearance of the voip slider19:21
ronoci have done the work for this in a branch but won't merge until the O cycle begins19:22
ronocwhat else ?19:22
ronoci feel though now ( a year down the road)19:22
ronocthe code and the architecture of the i-s is pretty stable/completed19:23
ronocobviously new features require new code but as the spec stands I have all angles covered19:23
ronocis there anything people would like to see added ?19:23
ronocI suppose 7pm in Europe on Friday isn't the best idea19:24
ronocalthough there must be some Americans here full of beans19:24
ronocAs I expressed earlier one of the main reasons for the reworking of the registration architecture was to allow players to easily integrate19:25
ronocthere are still some players though that do not integrate19:26
ronoctotem being one19:26
ronocwhich I have not got around to writing19:26
ronocnothing ubuntu specific is required anymore just a compliant mpris interface19:26
ronoc!q any questions19:27
* ronoc is getting the hang of using the classbot19:28
* ronoc waits for some interaction19:29
ronocdon't really know what else really needs to be covered ...19:31
ronocAny question guys, please ping me19:39
* ronoc enjoy Richard Skelton's latest release on type19:42
ClassBotThere are 10 minutes remaining in the current session.19:51
ClassBotThere are 5 minutes remaining in the current session.19:56
ronocOk folks all done here I think19:59
ronocGood weekend all19:59
james_wthanks ronoc19:59
ronocCheer james_w19:59
ronoccheers even20:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu App Developer Week - Current Session: pkgme: Automating The Packaging Of Your Project - Instructors: james_w
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/04/15/%23ubuntu-classroom.html following the conclusion of the session.20:01
james_whi everyone20:01
james_wMy name is James Westby20:01
james_wI'm here to talk to you about pkgme20:02
james_wwho has a cool application that they would love to make available to people on Ubuntu?20:02
james_wwho doesn't know how to go about packaging their application?20:02
james_wwho knows, but doesn't want to be bothered with that?20:02
james_wif that is you then pkgme may just be the tool for you20:03
james_wpkgme's job is to take a look at your project and generate you some packaging for it that will likely work20:03
james_wit's not going to be packaging that is perfect, but it should at least be enough for you to put your application in an PPA and get people testing it20:04
james_wand you can then improve it as needed to suit your use20:05
james_wso, how does pkgme work? Is it magic?20:05
james_wno, it's not magic, it just has a few principles that it uses to make decisions20:05
james_wfirstly, you probably wrote your application using some standard technologies/layout20:06
james_we.g. you might have used autotools and so have a ./configure file20:06
james_wor you might have used python and so have a setup.py20:06
james_wor it might be a KDE application, a rails application, a cmake application, a vala application etc.20:06
james_wpkgme doesn't care what you used, as long as it has heard of it20:07
james_wpkgme has the concept of a "backend", which is a set of scripts that know how to deal with each of those classes20:08
james_wso the first thing it does is look at your project and decide which class it falls in to20:08
james_wif it is a python application with a setup.py then it will activate the backend that it has for that20:08
james_wif you are unlucky then it either won't be able to tell which class your application falls in to, or it won't have a backend for your class20:09
james_wif it's the former then you can file a bug on pkgme and we will fix it20:09
james_wif it is the latter then you can help by contributing the backend for that class. It's pretty easy, and we'll look in more detail at that later20:09
ClassBotakshatj_ asked: So that means no messing around with /debian, pkgme does the dirty job for you?20:10
james_wyep, that's its aim20:10
ClassBotchadadavis asked: So, others can provide other backends, for say Perl modules ?20:10
james_wexactly, we'll look at how to do this later, it's pretty easy, and the more backends there are the better20:10
james_wyou could even write a backend for the exact way that you write projects if you like20:11
james_wbut if you stick to something common, like perl, then the aim is to have the backend already there, so you don't have to care about any of this20:11
=== akshatj_ is now known as akshatj
james_wso once pkgme has decided which backend it will use for your project it goes ahead and writes out the debian/ directory with the needed files20:12
james_wlet's take a look at it in action20:12
james_wso, pkgme itself isn't yet packaged, so we can test it out on itself20:12
james_wthe first thing you need to do is install python-virtualenv, as we'll need that package20:13
james_wthen you should run20:13
james_wbzr branch lp:pkgme20:13
james_wto get the code20:13
james_wonce that is done then run20:13
james_wvirtualenv virtualenv20:13
james_w(yes that is repeated)20:13
james_wthat will create you a python "virtualenv" in a directory of the same name. We'll do this so that we don't interfere with the rest of your system while we are testing this20:14
james_wthen run20:14
james_wcd pkgme20:14
james_wand you can look around the code20:14
james_wnext run20:14
james_wsource ../virtualenv/bin/activate20:14
james_wthis activates the virtualenv that you just created20:14
james_wthen run20:14
james_wpython setup.py install20:15
james_wonce that completes the setup is over, and we can start to test pkgme20:15
james_wpkgme works on the project that it finds in the current directory20:15
james_wand we are currently in the directory of pkgme20:16
james_wso it will work on itself here20:16
james_wif you run20:16
james_wPKGME_BACKEND_PATHS=pkgme/backends/ pkgme20:16
james_wit will think for a moment and then finish, and you will find a shiny new "debian" directory that wasn't there before, and it contains the packaging that pkgme just created for itself20:16
james_wis it any good though20:19
james_w?20:19
james_wto try it out you can run "debuild -b -uc -us"20:19
james_wthat will build the package, and here it spits out a .deb file that you could install20:19
james_wat this point you could build a source package and upload it to your PPA for others to try20:20
james_wnow, pkgme is quite a young project, so this was a bit of a hassle, but soon it will be packaged and ready to go20:21
james_wand you would have just run20:22
james_wsudo apt-get install pkgme20:22
james_wpkgme20:22
james_wand it would have given you the packaging20:22
james_wwe will likely add a mode to put the result in your ppa too20:22
james_wso it would be one command to install pkgme, and then one command to get your shiny new application in to a PPA so that people can use it easily20:22
james_wI think that's pretty cool, I don't know about you20:24
james_wwe could even have a button on launchpad to do it all for you, so you would commit your code to bzr, push it to launchpad, and click the button20:24
james_wit doesn't get much easier than that, does it?20:24
james_wnow, what happens if it doesn't work, or the packaging doesn't work quite right?20:25
james_woften this will be because you have done something that doesn't quite line up with the standard way of doing things in your class of project20:26
james_wbecause this is your project you may be able to easily change that20:26
james_wplus there will be a way eventually for you to customise the packaging in certain ways for when you can't really change to match the standards20:26
james_wbut we want to learn more about those cases before we decide how to implement that20:27
james_wso give it a try on your own projects and let us know how it goes20:27
james_wthere is a #pkgme irc channel that you can join20:27
james_wor there is a mailing list as part of the https://launchpad.net/~pkgme-devs team20:28
james_wso, any questions at this point?20:29
ClassBotchadadavis asked: This reminds me of Launchpad recipes. Are there plans to develop these in parallel. It would be cool if I could use pkgme locally to test things and then let launchpad recipes take care of daily builds.20:32
james_wfunny, I worked on Launchpad recipes too :-)20:32
james_wI would like to have them working together, but it's very early days20:33
james_wrecipes are great, but they still require someone to create the packaging20:33
james_whaving a launchpad feature to run pkgme and put the result in a branch, and then create a recipe to build it every day would be great20:33
james_wI'm pretty sure I can convince the Launchpad developers to implement it if we can show the pkgme works well for a lot of people, so I'd love your help to make sure it does20:34
ClassBotstefano-palazzo asked: is there an example hello world program in Python, with all of the setup.py business set up, that I can download?20:35
james_wI don't know actually20:35
james_wI think if you use quickly it creates one for you20:35
james_whttp://packages.python.org/an_example_pypi_project/setuptools.html might be of help20:36
ClassBotakshatj asked: Would it have user input for descriptions? The current automatically generated ones are horrible20:37
james_wyou are right, they are horrible :-)20:37
james_wI would like to have the ability to specify them somehow, but we haven't decided how that should work yet20:37
james_wif you have an opinion then please let us know20:37
james_wthe mailing list I mentioned at https://launchpad.net/~pkgme-devs would be a great place to do that20:37
james_wso, has anyone tried pkgme on their own projects yet?20:40
james_wif you do20:40
james_wls pkgme/backends20:40
james_wyou will see that there are currently only "python" and "vala" backends implemented20:40
james_wchances are that your needs aren't covered by those two20:41
james_wwe would love you to help by contributing a backend20:41
james_wthey are easy to write, but it's hard for us to know each language/project class well enough to write them ourselves20:41
james_wyou don't need to know anything about packaging to write one, we take care of all those parts :-)20:42
james_wwhat do you do if you want to write a new one?20:42
james_wtake a look at http://pkgme.net/doc/backends/index.html20:42
james_wyou can start right now in fact20:42
james_wbzr mkdir pkgme/backends/mybackend20:43
james_wthe first thing we write is a "want" script20:43
james_wthis is used to decide if your backend can handle a particular project20:43
james_win this script you take a look at the files in the current working directory and decide if you know what to do with them20:43
james_wso, if you want to do a perl backend, then it will likely do something like20:44
james_wif [ -f "Makefile.PL" ]; then20:44
james_w    echo 2020:44
james_wfi20:44
james_wif you want to a a java/Ant backend then you would do something like20:45
james_wif [ -f "build.xml" ]; then20:45
james_w   echo 2020:45
james_wfi20:45
james_wI don't really know, whereas you do, which is the point of this backend split in pkgme :-)20:45
ClassBotchadadavis asked: Now, if I want to make a backend, it will have certain dependencies, specific to it. So, will the backends be packaged separately. E.g a Perl backend might require many perl modules that others dont' need to install pkgme.20:46
james_wgood question.20:46
james_wit probably makes sense to package them separately, and have a metapackage that pulls in all/most of them by default20:46
james_wright, back to our backend20:49
james_wthe way pkgme interacts with a backend is to ask it a bunch of questions, each of them to get one piece of information about the project20:50
james_wwhat is its name?20:50
james_wwhat version is it?20:50
james_wwhat dependencies does it have?20:50
james_wwhat is its description?20:50
james_wthe backend is supposed to make its best attempt to answer, but if it can't answer a certain question then pkgme will try and cope20:50
james_whow does it ask these questions?20:51
james_wtake a look at the vala backend20:51
ClassBotThere are 10 minutes remaining in the current session.20:51
james_wyou will see a bunch of files with names like "package_name"20:51
james_wthey will be run by pkgme to get the information20:51
james_wso you can create pkgme/backends/mybackend/package_name and echo "myproject" in there, and pkgme will use that as the name20:52
james_wobviously a backend would usually look at the project files in the current directory to find out the name20:52
james_wsee the bottom of http://pkgme.net/doc/backends/index.html for the information that pkgme might ask about20:52
james_wthe scripts you should create are named the same20:53
james_was I'm almost out of time, I'll leave it there20:53
james_wany further questions20:53
james_wafter the session if you have questions then there is the #pkgme irc channel20:53
james_wand the mailing list at https://launchpad.net/~pkgme-devs20:54
james_wspend one hour writing a pkgme backend, and never have to care about packaging again! :-)20:54
ClassBotThere are 5 minutes remaining in the current session.20:56
james_wthanks everyone!20:58
james_wplease help it succeed by testing and giving feedback, and contributing backends20:58
james_wit won't succeed otherwise, and you'll be back to creating packaging yourself for all your applications :-)20:58
jcastroalright, thanks james!20:59
james_wnow for some unity!21:00
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu App Developer Week - Current Session: Unity Technical Q&A - Instructors: DBO, jcastro
jcastrook so does the bot kick in or what?21:01
jcastrooh well that answers that!21:01
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/04/15/%23ubuntu-classroom.html following the conclusion of the session.21:01
jcastrowelcome everyone to the Unity developer Q+A with me and Jason Smith21:01
DBOHowdy folks!21:01
jcastroI'll be fielding the questions21:01
jcastroand then Jason will answer them21:01
DBOlike a boss21:01
jcastroso while you think of questions, jason why don't you tell us about some of the cool things you can do in Unity.21:02
DBOSo some of our favorite new features in Unity this cycle are lenses, and the new libunity launcher API, I will touch on lenses first21:02
DBOLenses are bits of pluggable UI used to mash up websites and other applications into the dash21:03
jcastroFor example: http://i.imgur.com/yNjY0.jpg21:03
DBOcreating a lense (like the one shown above) takes very little time :)21:03
ClassBotjames_w asked: what is the dee thing that I keep hearing about?21:04
DBOlibdee is a low level dbus based library that is used to keep tables of data in sync between two remote objects21:04
DBObasically libdee provides a stable and fast data model over dbus that abstracts away the annoying syncronization issues21:04
DBOlibdee is used in unity to keep places daemon result data up to date in the dash's lenses21:05
DBOI hope that answers your question21:05
DBOanother piece of API we have created this time around is the libunity launcher API21:05
DBOthis API allows you to modify existing launcher icons in a very simple manner. Currently it supports adding progress bars, count tags, and setting urgency hints to a launcher icon21:06
jcastroHere's an example of Thunderbird integrating with Unity via the launcher API: http://vimeo.com/2102701521:06
DBOAdditionally through libunity, application authors are able to add quicklists to their applications, extending existing functionality and providing more right click options21:07
jcastrohttp://ubunturocking.wordpress.com/2011/04/12/dynamic-quicklists-in-unity/21:07
jcastrohere's an example of how app authors can generate quicklists from their applications21:08
ClassBotsaimanoj12 asked: Why are these links not clickable?21:08
DBObecause your IRC client has failed you?21:08
jcastro:)21:08
DBOhonestly I dont know :)21:09
ClassBotMeanEYE asked: Will there be a possibility to add more than one progress bar to dash using API?21:10
DBOCurrently this is not possible21:10
DBOI am not aware of any plans to expand this functionality either21:11
DBOI think the general idea is to keep the design as simple as possible. We dont directly indicate what the progress bars are for, therefor having two would not directly inform you which progress bar belongs to which task21:11
ClassBotMeanEYE asked: Did you plan on adding emblems to counters? For example email client could display how many messages needs to be send and how many unread. This can get UI a bit clunky, maybe putting those in tooltip.21:11
DBOWe already do that21:12
DBOlibunity::LauncherEntry has a count member variable, that when set results in a count being displayed on the launcher21:12
ClassBotcrazedpsyc asked: in his session, kamstrup said progress bars and badges are being, or have already been removed because the design team voted against them. Is this true?21:13
DBOProgress bars have been kept, badges were removed, count is still present21:13
DBOand being able to set urgency status was also added at the same time21:13
ClassBotMeanEYE asked: Did you consider making minimum width of indicator items? For example bluetooth icon is always narrow which can be a pain to click if you are using touchpad or something like that.21:14
DBOYeah, that bug has reported to Neil, a fix should arrive on your system soon :)21:14
ClassBotstefano-palazzo asked: Are there plans to implement counts et al for Places this cycle?21:14
DBOCurrently there are no plans to implement this, it would require changes to the libunity protocol and we are well passed freeze for that. On a design end I am not sure they want to see counts there anyhow21:15
DBOThough I can see where you might want them, we'll see where next cycle goes :)21:15
ClassBotcrazedpsyc asked: Does the dash file search use tracker? Or what?21:16
DBOIt uses zeitgeist actually, we dont currently use tracker and dont have any plans to in the future (so far)21:16
DBOThough there are obvious issues with zeitgeist right now (sometimes the results are less than optimal) and we are hoping to resolve that in the future21:17
ClassBotMeanEYE asked: How well Unity supports multiple-displays?21:17
jcastroI use unity in twinview21:17
jcastroit's an area we spent some time on21:17
jcastrowhat happens currently is the extra monitor also has a panel21:18
jcastroand the appmenu and indicators also show up there21:18
jcastroin the past the menus and stuff were on the other monitor21:18
jcastroso it made it a loooooong journey to the menu when using a mouse21:18
jcastronow each panel gets a menubar21:18
jcastroI think it's much better than what we had in gnome 221:18
jcastrosince we now have a panel that isn't so crufty21:19
jcastrowhen you plug in an external monitor it doesn't jumble your indicators anymore21:19
ClassBotcrazedpsyc asked: Are there any plans to at least have the option of a moveable launcher (maybe drag, or just align-to-edge)?21:19
DBOCurrently there are no plans to implement a movable launcher21:19
DBOhowever we have talked about the need to support RTL languages21:20
DBOand this would likely require the ability to place the launcher on the right21:20
DBOcombine this with the newly landed edge reveal option21:20
DBOand we will see what the future holds :)21:20
ClassBotMeanEYE asked: Global menu seems slow when it comes to drawing. Also it fails to draw menu items with custom widgets in it. Are there plans to fix this?21:20
DBOThe biggest issue with this is that the widgets have to be communicated over dbus21:21
DBOwhile dbus is flexible, we have not fully implemented everything you can dream up yet (obviously)21:21
DBOmost of the normal cases, and even some of the more abnormal ones have been covered21:21
DBOas time goes on I hope this support will grow and continue21:21
ClassBotsaimanoj12 asked: Is unity same as gnome3?21:22
DBOUnity is based on top of a mixture of GNOME 2 and GNOME 3 technologies right now21:22
DBOwhile it uses gdk/glib and gtk from GNOME 2, it also uses gdbus and dconf, which are largely used within GNOME 321:23
DBOwhen GNOME 3 lands in full next cycle, we will be ready to adapt to any new technology changes21:23
DBOwe will be migrating all of our GTK/GDK code over to GNOME 3.0 technologies for Oneiric :)21:24
ClassBotcrazedpsyc asked: What language(s) [is/are] the launcher specifically written in? What modules or libraries does it use?21:24
DBOThe launcher, dash, and panel are all written in C++21:25
DBOwe use a base opengl library called nux to provide widgets21:25
DBOnux is also C++ based21:25
DBOour places (the files and applications place) are written in vala21:25
DBOsome third party places (the reddit place and askubuntu) are written using python21:25
ClassBotTiteuf_87 asked: currently I see three different kind of scrollbars: does the new kind of "small" scrollbar need to be implemented on a per-app basis?21:26
DBOIt is implemented by the theme engine actually21:27
DBOcurrently we are using a whitelist to enable it in well tested applications where we are sure it does not cause bugs21:27
DBOI am not sure if the whitelist will remain through until release, or if we will see a global enablement21:27
DBOObviously we see considerable value in having a consistent visual look across all scrollbars21:27
ClassBotMeanEYE asked: At the moment Unity is not allowing amount of window shadow to be changed. Is this on purpose?21:28
DBOI think this is largely due to missing support21:28
DBOwe just didn't have time to turn this into a configurable size option21:28
ClassBotgmb2001 asked: I've noticed today that when double clicking the globalmenu that the window restores from being maximized, but off to the right. Is this a known bug?21:29
DBOIt is now!21:29
DBOI haven't heard that reported before21:29
DBOI will make sure sam gets the message :)21:30
ClassBotMeanEYE asked: Can we expect PPA or something like that for Unity in Natty during the Oneric development cycle?21:31
DBOI am not sure to be honest21:31
DBOwe have always maintained a daily PPA21:31
DBOand I imagine weekly releases will be available for Natty until library version delta's become too big21:32
DBOand we are no longer able to support Natty21:32
jcastroFYI: https://launchpad.net/~unity/+archive/daily21:32
DBO(that will happen probably in the first couple months)21:32
DBOonce we port to GTK 3, it will be much harder to backport21:32
ClassBotcrazedpsyc asked: What library did Unity's launcher use to get an average color out of each icon? I tried to do something like this but it resulted in most of my buttons being black or grungy21:32
DBOSo I wrote that actually :)21:33
DBOThe original algorithm I wrote for Docky, we them ported that over for usage in Unity21:33
DBOit basically loops over each pixel and adds up the R/G/B and biases against desaturated pixels (and obviously gives little weight to transparent pixels too)21:34
ClassBotMeanEYE asked: Have you considered a development model for Unity that resembles one of Google Chrome, having stable and development branch, releasing as often as possible?21:34
DBOwe have been doing weekly releases for the passed 6 months21:34
DBOI am not sure we are going to move a chrome-esque development model21:35
DBOI actually rather doubt it21:35
ClassBotMeanEYE asked: Few days ago I tested Unity on my laptop connected to WiFi. Whenever I clicked "start" button (or whatever you call it) I noticed few seconds before shell became responsible again. Will there be an option for us to disable lenses and how does Unity handle lenses that require internet on disconected machine.21:37
DBOLenses are totally async (they are different processes) and should not cause the shell to freeze while waiting on a lense21:38
DBOif you are experiencing a freezing type issue, there is a fix for these kinds of issues going into todays compiz release21:39
DBOyou may wish to check that out :)21:39
DBOif that doesn't help, we love bug reports (well not really, but we read and respond to them)21:39
ClassBotdavidcalle asked: Are you planning a way to bookmark some searches in lenses?21:41
DBONo, but as a personal note, I think its an awesome idea21:41
ClassBotTiteuf_87 asked: are lenses a bit comparable to what was the deskbar-applet in older versions of Gnome?21:43
jcastrosort of21:44
jcastrothey are searchable and stuff21:44
jcastroI think they're more equivalent to firefox custom search things21:44
jcastrobut at the OS level21:44
jcastroso like you know how some websites let you install their search engine in firefox21:44
jcastrolenses are kind of like that21:44
jcastroso I can just hit the windows key, type "rick roll" and the youtube lens would return a list of videos to me21:45
jcastrowhat makes lenses more powerful is that we can also connect to applications.21:45
jcastroso we can search things on your PC for you as well as the web21:45
ClassBotMeanEYE asked: What's the reason behind making Launcher menu with custom graphics and not using system menu style?21:46
DBOShort answer: that is how design wanted it21:46
DBOLong answer: we wanted something that was flexible, fast, and would look exactly how we wanted it to21:46
DBO(not a very long, long answer)21:47
ClassBotcrazedpsyc asked: Will the top panel ever get the option to autohide? I have all my AWNs autohidden or over windows because my screen is so small vertically...21:47
DBOso the awesome thing about Unity is how much vertical it saves you without having to resort to autohiding21:48
DBOby embedding the decorations into the panel when a window is maximized, you gain as much vertical space as you would from an autohiding panel21:48
DBOcombine this with the global menus, and you gain 24 more pixels or so on top of that21:48
DBObut21:48
DBOno, we dont have any plans to autohide the panel21:49
ClassBotMeanEYE asked: At the moment if you highlight an item in dash using your keyboard and then move your mouse over a different item bot of them will be highlighted in the same way. Will this change, since it can bring confusion?!21:49
DBOYes that is a bug21:49
DBOwe will fix it (I hope) for natty21:49
ClassBotsoreau asked: What should we tell users that just want their old compiz+gnome-panel back? Is there a non-unity session selectable from gdm?21:50
DBOthere is an ubuntu classic session in gdm21:50
DBOthose users will be well serviced by that!21:50
ClassBotsoreau asked: Is there a way to select non-unity session by default?21:50
DBOafter you select the classic session once it will remain the default from then on21:50
ClassBotMeanEYE asked: Now that Unity is Compiz based, will Canonical pay more attention to default eye candy? (more of a general question actually)21:51
DBOyes, the compiz defaults will be under constant review and scrutiny21:51
DBOthis cycle we have made as many changes as possible that we thought would improve the user experience21:51
ClassBotThere are 10 minutes remaining in the current session.21:52
DBONow that you all have voice21:52
DBOlet the free for all begin!21:52
ClassBotstefano-palazzo asked: we can assume that LibreOffice will be integrating its menu into the panel before the release, yes? How hard is it for a big app, especially if it's not written using GTK, to make its menu compatible with Unity?21:52
=== davidcalle is now known as davidc3
DBOIts in universe, but it's not shipped by default21:52
DBOprobably ready for 11.1021:52
DBOlike with any application that doesn't use the standard toolkit, it can be difficult to fully integrate with the OS21:53
ClassBothtorque asked: the lenses and the workspace switcher seem to be quite important launcher items. why are they placed at the lower end of the launcher, where they are likely to get folded/expanded off-screen instead of having them at the top (or even movable)?21:53
DBOAs important as they are, we feel they are not as important as your favorite applications21:54
DBOHowever, I think that considering the folding behavior, this will be an area of attention in the next cycle21:54
DBOfinding a way to make sure lenses and workspace switcher are as easy to access as anything else21:54
ClassBotcrazedpsyc_ asked: But will GTK apps automatically use the global menu?21:55
DBOyes, unless they do something really strange21:55
ClassBotsoreau asked: What is the key purpose behind lenses?21:55
DBOlenses are designed to give access to applications, files, and web resources inside of the Unity shell21:55
DBOlenses are extensible, which is quite nice for third party developers21:56
ClassBotThere are 5 minutes remaining in the current session.21:56
DBOthey basically serve to replace the existing gnome menus21:56
DBO(and much more)21:56
ClassBotMeanEYE asked: Can we expect an option to hide unusable items from Launcher?21:56
DBONot this cycle, maybe next21:56
DBOwe'll see :)21:56
ClassBotmaxb asked: Is more configurability (especially of auto-hide / edge-reveal timeouts) in the short term plan?21:56
DBOEdge reveal timeout may receive some tweaking this cycle, which may result in an option popping up in CCSM, we'll see21:57
DBOwe are not planning on adding options explicitly however21:57
jcastrook, that's about all the time we have21:58
jcastrowhew, we really went through a ton of options.21:58
jcastroI mean questions.21:58
jcastrothanks everyone for asking so many questions!21:58
jcastroand now we're on to lightning talks!21:58
mhall119okay, so for anyone who's not familiar with what a lightning talk is21:59
mhall119it's a very quick presentation, where the speakers only have about 5 minutes to say everything they have to say22:00
mhall119they've become quite popular at conventions22:00
mhall119for this session, we have people who are going to give a quick overview of some program they are involved in, so you can see what small projects are out there that you might want to get involved in22:00
mhall119as always, you can ask questions in -classroom-chat22:01
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu App Developer Week - Current Session: Lightning Talks - Instructors: stefano-palazzo, duanedesign, davidc3, kirkland, MeanEYE, muesli, nhandler
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/04/15/%23ubuntu-classroom.html following the conclusion of the session.22:01
mhall119but remember, they only have 5 minutes, so don't expect them to answer everything22:01
mhall119so, without wasting any more of their preciouos time22:01
mhall119our first speaker is sefano-palazzo, talking about StackExchange App22:02
stefano-palazzoHello, I'm Stefano - I'll be talking about StackExchange22:02
stefano-palazzoStack Exchange is a network of question and answer websites22:02
stefano-palazzoit includes sites like http://stackoverflow.com, http://serverfault.com, and of course22:02
stefano-palazzohttp://askubuntu.com - the best place to ask questions and get answers about Ubuntu22:02
stefano-palazzoI've also written the Ask Ubuntu Lens for Unity,22:03
stefano-palazzohttp://askubuntu.com/questions/3171222:03
stefano-palazzoThe Lens is designed to work with Ask Ubuntu, but it also supports every other Stack Exchange site22:04
stefano-palazzoIf you're interested in geographic information systems, guitars, maths, star trek, ... there's probably a site for you.22:05
stefano-palazzoIf you're running Natty Narwhal, you can add our Team's PPA to install the lens: https://launchpad.net/askubuntu-lens22:05
stefano-palazzoIt also contains stack applet; A little, App Indicator sized utility that keeps you up to date with your profile on any stackexchange site - if you're already an Ask Ubuntu user22:05
stefano-palazzoIt's written by George Edison, and, if you're interested in what's happening in your Stack Exchange account, this app is for you22:06
stefano-palazzoAnd if you don't know what Stack Exchange or Ask Ubuntu are,22:06
stefano-palazzoI urge you to check them out. They're the best place on the web if you just want to get an answer to your question. Jorge has recorded a screen cast providing a gentle introduction:22:07
stefano-palazzohttp://blip.tv/file/490934622:07
stefano-palazzoThat's about all I've got - if you're interested, join Ask Ubuntu (you don't need to register an account). And if you want to talk to me about developing Apps that integrate with Stack Exchange sites, I'm often in #ayatana, or the Ask Ubuntu chat at http://chat.askubuntu.com22:08
stefano-palazzothank you very much for your time :)22:09
ClassBotmhall119 asked: does it search every stackexchage site by default, or do you have to enable the ones you're interested in?22:09
=== tubadaz is now known as tubadaz_away
stefano-palazzoIt searches Ask Ubuntu by default, but if you want to search on any other site, you can use special modifers. A typical search might be "@guitars telecaster sustain", or "@programming open source license"22:10
ClassBotMeanEYE asked: Will your lense be integrated with default Ubuntu installation?22:11
stefano-palazzothe modifier is the first part of the site's URL, what ever comes before .com22:11
stefano-palazzoNo, then lens will not be part of the default installation, it will in all likelihood appear in the Independend category of the software centre22:11
mhall119alright, thanks stefano-palazzo!22:12
mhall119next up is duanedesign with CLI Companion22:12
mhall119take it away duanedesign22:12
=== tubadaz_away is now known as tubadaz
mhall119okay, we'll try him again later22:14
mhall119davidc3 is next with Unity Book Lens22:14
mhall119davidc3: ready?22:14
davidc3Yes :)22:14
mhall119the floor is yours22:14
davidc3Hello, I'm David and I'm going to introduce you to my pet project: the Books Lens.22:15
davidc3There are a lot of free online libraries, such as Google Books or Project Gutenberg, and as a heavy books reader, I wanted to find a way to search them all at once.22:15
davidc3More precisely, my goal was to reduce the time from searching to reading:22:15
davidc3To put it another way: type, click, read a book. Like any document on your computer.22:15
davidc3The project started when I found stefano-palazzo's first commits for the askubuntu lens. It presented me a simple way to get results from the Internet displayed in Unity, in Python.22:15
davidc3Why in Python? Because I'm not a developer, because I didn't know any more code than a few terminal tricks and because "everyone" says Python is easy...22:16
davidc3So it was time to get my hands dirty and I started to blindly modify some values and experiment on stefano's code :)22:16
davidc3I also found the Google Books JSON API documentation to be very helpful.22:16
davidc3By the way, an API is a set of rules to ask other services questions and to interprate the answers and JSON is a language easy to interprate in Python.22:16
=== erichammond1 is now known as erichammond
davidc3A few hours later, I had a working lens! You could search every books indexed by Google, and authors, and subjects! The power of Google in the palm of my hand! http://img39.imageshack.us/img39/8454/screenshot4xn.png22:17
davidc3But... my web browser was just a click away and it could do all of this much faster and better...22:17
davidc3So, it was time to had features:22:17
davidc3The first one is called "Focused Author". When you get search results, the lens uses the first author it finds, and presents other books from her or him.22:17
=== crazedpsyc_ is now known as crazedpsyc
davidc3It does work on most searches and find authors from Sophocles http://img861.imageshack.us/img861/7618/screenshotss.png22:18
davidc3...to Jono Bacon! http://img200.imageshack.us/img200/7219/screenshot1sf.png :)22:18
davidc3Another feature is a localization trick: the lens finds out your session's language and tries to present you books in your language first.22:18
davidc3What's coming next:22:18
davidc3* More focus on free books! (the actual "Free Books" search is clunky, but it will eventually be default).22:19
davidc3For now, most of the time, instead of: "Type, click'n'read", it's: type, click and "an Amazon link, really?"22:19
davidc3* Search in Project Gutenberg and Forgotten Books (with help from Blekko, a really nice search engine)22:19
davidc3* Special searches, like "50's sci-fi"!22:19
davidc3* Smart pre-population via Zeitgeist: you are looking at a web page or some other document, then open the lens: without needing you to type anything, it finds out what you are doing on your computer (using the title of the most recently accessed document) and present you related books.22:19
davidc3How you can help:22:20
davidc3Add the PPA: https://launchpad.net/~davidc3/+archive/books-lens22:20
davidc3Try it and report bugs: https://bugs.launchpad.net/unity-books-lens22:20
davidc3That's all, if you want to talk to me about this project, I'm often in #ayatana (nick davidcalle), thank you for your time! :)22:20
davidc3Any questions?22:21
ClassBotMeanEYE asked: After finding a book using Unity, will default book reader application open or just URL?22:21
davidc3For now, just URL, but the ultimate goal is to open it in the appropriate reader.22:22
davidc3Or device!22:22
davidc3Project Gutenberg makes it very easy to download things in kindle format, for example.22:22
davidc3More questions?22:23
mhall119alright, thanks davidc3, I'm sure i will get less work done in Natty now ;)22:23
mhall119up next is kirkland and Bikeshed22:23
davidc3Thanks mhall119 :)22:23
kirklandmhall119: thanks22:23
kirklandright, so Bikeshed ...22:24
kirklandBikeshed was the answer to a problem I've struggled with for some time now22:24
kirklandI had a growing number of really cool, convenient scripts stacking up in my own ~/bin directory22:24
kirklandmany of which might be useful to other people22:24
kirklandand so I tried to contribute them to upstream projects22:25
kirklandbut many of these upstream projects were old, or stagnant;  others were new and active, but just uninterested22:25
kirklandmore importantly, the actual implementation of a few them them were debated endlessly22:25
kirklandthis gave rise to the Bikeshed project22:25
kirklandwhere the term "bikeshedding" has become very commonly used in modern open source development circles22:26
kirklandhttp://en.wikipedia.org/wiki/Parkinson%27s_Law_of_Triviality22:26
kirkland^ if you don't know what it means to "bikeshed"22:26
kirklandso anyway, I created the "Bikeshed" project in Launchpad, as a breeding ground for new/interesting/even-trivial-but-helpful scripts and programs22:27
kirklandit's sort of an incubator22:27
kirklandor even an orphanage22:27
kirklanda place I often put things that other people might use, until it finds a more permanent home22:27
kirklandsome of the things to land in Bikeshed ...22:27
kirklandmost recently, "apply-patch"22:28
kirklandwhich is a wrapper for patch, that can retrieve patches via URL, and automatically detects the strip-level22:28
kirklandbzrp is a wrapper for bzr, that puts the output through a pager if it's more than one screen (sort of like git does automatically)22:29
kirklandcol1 .. col9 is a really slick wrapper that does the equivalent of "awk -F"$something" '{print $N}'22:29
kirklanddman remotely retrivies manpages from manpages.ubuntu.com22:29
kirklandwifi-status is a watch wrapper that monitors your wireless connection in real time22:30
kirklandand so on22:30
kirklanda few things have "graduated" out of bikeshed to be projects of their own22:30
kirklandssh-import-id $LAUNCHPAD_USER is a cool tool that securely retrieves a public SSH key from Launchpad and installs it to the authorized_keys file of the system22:30
kirkland(really useful in cloud computing circles)22:30
kirklandand the errno utility was one of the proverbial straw that broke the camels back, and inspired me to create bikeshed22:31
kirklanderrno searches Linux error numbers, names, and descriptions22:31
kirklandthere's a few more22:32
kirklandbut I should probably save a few minutes for quesitons22:32
kirklandquestions, even22:32
kirklandmy classbot fu is out of date22:32
ClassBotMeanEYE asked: Do you have any graphical part of application which can help us easily install/remove scripts?22:33
kirklandMeanEYE: hmm, currently every thing is command line only22:33
kirklandMeanEYE: and bikeshed itself is kind of a mish-mash of random scripts22:33
ClassBotdavidc3 asked: Do all the scripts have man or help? And do you have some wiki page where we can learn a bit more about them??22:34
kirklandMeanEYE: part of the process of "graduating" a script out of bikeshed means making it into its own package/project, which is then installable from the Ubuntu Software Center22:34
kirklanddavidc3: absolutely!  every script/program MUST have a manpage to land in bikeshed :-)  it's my most important requirement22:34
kirklanddavidc3: the best place to learn is http://blog.dustinkirkland.com/search/label/Bikeshed22:34
mhall119alright, thanks kirkland!22:35
kirklandmhall119: thank you!22:35
mhall119so everyone dig around in your ~/bin and see what you can toss in the shed22:35
mhall119Up next is MeanEYE with his app: Sunflower FM!22:36
MeanEYEOh, is it me already. Great!22:37
MeanEYEHello everyone.22:37
MeanEYEMy name is Mladen, although using my nick is just fine.22:37
MeanEYEI'll use this short time span to present you with Sunflower.22:37
MeanEYESunflower is twin-panel file manager based on GTK+.22:38
MeanEYEIdea is to create keyboard driven file manager that seamlessly integrates into Gnome desktop environment (and Unity of course).22:38
MeanEYESo, without dragging this more than I should... I'd like to give you a few screenshots of my little program in action.22:39
MeanEYEhttp://img231.imageshack.us/img231/2310/screenshot3vk.png22:39
MeanEYEhttp://img560.imageshack.us/img560/834/screenshot1pl.png22:39
MeanEYEhttp://img855.imageshack.us/img855/3793/screenshotvw.png22:40
MeanEYEI tried to be creative and add many options but at the same time keep user interface clean and organized.22:40
MeanEYEI believe many of you already used some twin-panel file manager like Total Commander, Gnome-Commander, Midnight Commander, etc.22:41
MeanEYESince I like talking with people, feel free to ask questions.22:42
MeanEYEFor impatient people you can download it from: http://code.google.com/p/sunflower-fm/22:42
ClassBotmhall119 asked: You said it's keyboard controlled, does that mean everything had a keyboard shortcut?22:43
MeanEYEYes, not everything but most commonly things do have them. Those that don't have shortcuts can be accessed using a keyboard.22:43
MeanEYEOne nice example of this is when you are working with files and you need a terminal in that very directory, all you need to do is hit CTRL+Z and program will open terminal with that path.22:44
MeanEYEProgram is also multi-threaded so if you have more than one core on your processor program will use this.22:45
ClassBotmhall119 asked: Is this in Universe or a PPA?22:45
MeanEYENo, not at the moment. It's still in early alpha stage.22:46
MeanEYEAlthough there are some people who are using it heavily without any issues.22:46
mhall119okay, if anybody has any further questions for MeanEYE, feel free to ask22:46
mhall119but now it's time for us to move on to muesli and Tomahawk Player22:47
MeanEYEIf someone is willing to join and help package it or translate it, just refer to that link I gave you and I'll help!22:47
MeanEYEOk, thanks every one!22:47
muesliGood evening! My name's Chris, I'm the lead developer of a young project called Tomahawk, a "social" music player written in C++ / Qt422:47
muesliI know what you're thinking "great, exactly what the world needed, yet another music player", but bear with me for a second. Tomahawk handles your music collection differently than any of the players that you have used so far22:47
muesliTomahawk allows you to connect to your friends' music collections via Jabber or Twitter - it simply re-uses your social graphs and tries to find contacts that are currently running Tomahawk. Once you're connected, you can stream all their music and even play your friends' playlists22:48
muesliWhenever you load a playlist, Tomahawk automatically determines the best source for each of the playlist's tracks: If you have a copy of the track locally it'll prefer that, otherwise the track will get streamed from one of your friends - on demand and automatically. It just plays22:49
muesliBut what if you load a playlist and none of your friends is currently online - and you don't have a local copy of a track either?22:50
muesliTomahawk tries to help out and will also find music all over the internet for you. It is extensible by so-called resolvers, which are little plugins or scripts running in the background. They try to find a streamable url for any song you wanna listen to22:50
muesliWhether it is available on Spotify, Youtube or found on an MP3 blog by Skreemr. It just finds it and plays it22:50
ClassBotThere are 10 minutes remaining in the current session.22:51
muesliWe go even beyond that and try to utilize existing metadata from public APIs (like Echonest or Last.fm). Tomahawk can automatically prefill your playlists by a variety of criteria, so you'll always find a set of tracks that fit your current mood22:51
muesliJoin us on channel #tomahawk and we'll get you started with not only Ubuntu packages, but also Win32 and OS X binaries22:51
muesliCheck out our blog for a few how-to and demo videos: http://tomahawk-player.org/blog/tips_tricks/stations and follow the project on GitHub: https://github.com/tomahawk-player/tomahawk22:52
ClassBotmhall119 asked: How does it know which of your friends is using it?22:52
muesliThat depends on the connectivity (called SIP) plugin you're using. When it comes to Jabber, it'll use a specific resource, so it can identify other Tomahawks in your contact list.22:53
muesliThe Twitter plugin will look for an invite message, which you can either send to all your followers or just a handful of people22:54
ClassBotmhall119 asked: Have you considered the legal impact (copyright) of streaming music to your friends?22:54
muesliYes, we have thought and written about this situation here: http://tomahawk-player.org/legal22:55
ClassBotjames_w asked: does it stream music over twitter?22:55
muesliNo, it won't use Jabber or Twitter to stream the music. Those protocols are only used to initiate a connection. From there on it's a direct connection between two Tomahawks.22:56
mhall119thanks muesli, this certainly is a new take on music players!22:56
muesliThanks for your time, hope to see you on #tomahawk22:56
mhall119alright everybody, wrapping up this session and this week is nhandler and our very own lovable, huggable, perl-icious ClassBot!22:57
nhandlerHello everyone. ClassBot is an IRC bot I wrote a while ago to help with running classroom sessions in #ubuntu-classroom22:57
nhandlerWe had a brief lightning talk at UDS given by cjohnston, but no IRC talk was ever given22:57
nhandlerSome information about ClassBot is available here: https://wiki.ubuntu.com/Classroom/ClassBot22:58
nhandlerAs you probably have seen, classbot has been working tirelessly this past week to ensure the /topic stays updated and that instructors get voiced and devoiced22:58
nhandlerAll of this information comes from of Classroom calendar: http://people.ubuntu.com/~nhandler/classroom.html22:59
nhandlerClassBot also helps instructors keep track of questions. You can currently get the next question (if you are an instructor or helper) with: /msg classbot !q22:59
nhandlerYou can then choose to have the question go to the classroom (!y) or reject it with (!n [optional comment]).23:00
nhandlerOne probably lesser known feature of ClassBot is that it is responsible for keeping the classroom identi.ca feed up-to-date: http://identi.ca/ubuntuclassroom . You can subscribe to that feed to always know when a session is goin on.23:01
ClassBotmhall119 asked: When will the OOP re-write be ready?\23:01
nhandlermhall119 is asking about a major re-write I am doing to make it easier to add a few features to ClassBot. I've gotten a bit behind due to some real life work, but I hope to start working again after the second week in May. It should be done and ready to launch in #ubuntu-classroom at the end of May.23:02
ClassBotMeanEYE asked: Does it respond to CTCP. Might be handy so you don't have to switch tabs when getting next question and similar. :D23:02
nhandlerMeanEYE: Switching tabs all depends on your IRC client. For example, I have my client set to show PMs in the current window (rather than creating a new query window).23:03
nhandlerCTCP messages would be a bit inappropriate to use for something like this.23:03
nhandlerSo in short, it does not currently respond to them and it probably will not gain that feature.23:03
ClassBotMeanEYE asked: Did you consider making classroom topic to be displayed before other information? In many clients you have to scroll to find the rest of the text.23:03
nhandlerIf by Classroom topic you mean the current session information, I believe we decided to put it on the end to ensure that the information at the beginning always shows up and won't get cut-off due to a lot of instructors and a long session title/event name. So yes, we considered it, but we decided on the current layout (note that it is easily configurable though)23:05
ClassBotThere are 5 minutes remaining in the current session.23:06
nhandlerAny more questions?23:06
nhandlerIf you ever have any issues using classbot during a session, I encourage you to stop by #ubuntu-classroom-backstage or ask one of the people listed on the calendar as a helper. They will usually be able to help you or point you in the right direction23:08
nhandlerFinally, if anyone is interested, here is an old set of slides I prepared to explain classbot: http://people.ubuntu.com/~nhandler/myslides/23:08
nhandlerWell, this conlcudes my lightning talk, the lightning talk session, and Ubuntu App Developer Week.23:09
nhandlerI hope everyone has enjoyed the lineup of sessions and learned a lot23:09
nhandlerIf you ever wish to lead a session (or have a suggestion for a session you would like to see), please do not hesitate to email ubuntu-classroom@lists.ubuntu.com or stop by #ubuntu-classroom-backstage23:10
ClassBotLogs for this session will be available at http://irclogs.ubuntu.com/2011/04/15/%23ubuntu-classroom.html23:11
nhandlerFinally if you missed a session, logs are available on the wiki: https://wiki.ubuntu.com/UbuntuAppDeveloperWeek23:11
nhandlerThanks for coming everyone23:11
=== ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat ||
=== davidc3 is now known as davidcalle
=== tubadaz is now known as tubadaz_away
=== tubadaz_away is now known as tubadaz

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