[16:01] <akgraner> Welcome to Ubuntu App Developer week! (Formally known as Ubuntu Opportunistic Developer Week).
[16:01] <akgraner> Ubuntu App Developer Week is a week of sessions aimed at enabling and inspiring developers to write applications that scratch their itches. Our goal is to give all attendees a taste of the wide variety of tools on the Ubuntu platform that can be used to create awesome applications, and to showcase some applications that have been created and explain how they were put together.
[16:01] <akgraner> to ask questions please ask in ubuntu-classroom-chat
[16:02] <akgraner> and form the questions using QUESTION: in front of your questions
[16:02] <akgraner> So lets start scratching some itches, sharing some tools, creating awesome applications and showcasing others.
[16:02] <akgraner> Welcome - Mirco "MacSlow" Müller who will be opening Ubuntu App Developer Week with a session on "From mockup to bling.
[16:02] <akgraner> Micro if you are ready the floor is yours!
[16:02] <MacSlow> ah ok... thanks akgraner
[16:03] <MacSlow> So in this session I will talk about general principles, common practises, helpful workflows and tips/tricks to go "from mockup to bling"
[16:04] <MacSlow> meaning pretty designer drawn images to working apps/code
[16:05] <MacSlow> as akgraner said questions can come in anytime, right?
[16:05] <MacSlow> As an example for "from mockup to bling" I'll use unity's quicklist
[16:05] <MacSlow> I hope by everybody knows what unity is :)
[16:06] <MacSlow> take a look at this image http://macslow.net/images/quicklist-mockup.png
[16:06] <MacSlow> That's a mock of of the designers idea of what quicklists should look like
[16:07] <MacSlow> but for the person meant to make that into working code it's not really the full story
[16:07] <MacSlow> becasue it needs to be a bit more "systematic"
[16:09] <MacSlow> to implement this one needs hard facts (numbers for radii, widths, lenghts, etc)
[16:09] <MacSlow> which much easier flow into code
[16:11] <MacSlow> what you need to create (or ask from the designers) is a more schematic drawing like this...
[16:11] <MacSlow> http://macslow.net/images/quicklist-schematic.png
[16:12] <MacSlow> That looks less shiny but is a lot simpler to put into code (what up with "em" I'll get to after this)
[16:13] <MacSlow> in this drawing you see what's important and one can almost right away start codeing that as it easily maps to drawing-calls from e.g. cairo or QPainter
[16:14] <MacSlow> With colors, gradients, patterns and opacity you need to deal in the same way.
[16:15] <MacSlow> Everything clear up to know?
[16:16] <MacSlow> So what's with EM stuff in the schematic you ask.
[16:16] <MacSlow> That's the measurement for making all your UI-elements resolution-independent.
[16:17] <MacSlow> Most of the time one gets only discrete pixel-values (by measureing that in gimp in the mockup-graphic)
[16:18] <MacSlow> an implemented UI-element based on that will only work as the end-user will not have a dramatically different screen (with super high DPI) and/or a different font-size set
[16:19] <MacSlow> UIs implemented in a resolution-independent fashion will automatically adapt to new conditions like those. If only based on hard-coded pixel-sizes it can break in a nasty (visual) way.
[16:20] <MacSlow> So what is an EM now?
[16:20] <MacSlow> It's the unity-size of the set system-font (height)
[16:20] <MacSlow> usually 10 points
[16:21] <MacSlow> I will bore you with the formular for this now... :)
[16:21] <MacSlow> pixels_per_em = font_point_size * screen_dpi / 72.0f;
[16:22] <MacSlow> Where all those are floats... but pixels_per_em should be rounded to int of course
[16:23] <MacSlow> font_point_size and screen_dpi you can query via you toolkit api of choice (gtk+ and Qt have means for that)
[16:24] <MacSlow> A good way to provide artwork for the real app and stay resolution-indepdented is to use SVGs.
[16:25] <MacSlow> For static parts that perfectly ok. If animated elements are needed this will not fully fit the bill.
[16:26] <MacSlow> Animated SVG, while spec'ed out, are still a dream for day-to-day use in UI-development
[16:27] <MacSlow> Let's move to some common practises.
[16:27] <MacSlow> I mentioned cairo and QPainter earlier.
[16:28] <MacSlow> Those are currently the best choices on the Linux desktop of doing custom UI/widget development...
[16:28] <MacSlow> to fill in the "rects"
[16:28] <MacSlow> If you look at any application they are 2D and made up of rectangular regions.
[16:29] <MacSlow> What you need to do is fill them with "meat"
[16:29] <MacSlow> This meat is either an image, text, gradient, some sort of line-drawing
[16:29] <MacSlow> for this nothing beats cairo (or QPainter)
[16:33] <MacSlow> Some interesting things to do with you "rects" then before they land on the screen is to "post-process" them
[16:33] <MacSlow> Of course depending what the initial design ask for.
[16:33] <MacSlow> Commong are fade-out masks...
[16:33] <MacSlow> http://macslow.net/clips/animated-text.ogv
[16:34] <MacSlow> blurs, glows, drop-shadows
[16:35] <MacSlow> that screencast example shows fade-out masks (see top and bottom of scrolling text), drop-shadows and glows (very subtle in the text)
[16:35] <MacSlow> for those you'll need to deal with offscreen-rendering
[16:42] <ClassBot> jledbetter_ asked: Which is better: Cairo or QPainter?
[16:42] <MacSlow> Ok, let's continue
[16:44] <MacSlow> so offscreen-rendering...
[16:45] <MacSlow> This "draws" into an non-visible memory area where you can perform any kind of manipulation before finally blitting the end-result to the screen for the user to see.
[16:47] <MacSlow> With the scrolling-text example from the last screencast, the text is drawn offscreen (with a transparent background) and then the upper and lower edges are earased using a gradient mask (about 10 pixels high) going from full to 0 opacity
[16:47] <MacSlow> after that's done it is then put on screen with the visual result of the text dissolving at the top and bottom edge
[16:50] <MacSlow> This approach is also used for doing the "glow" behind the text there. The glow is actually dark (almost) black to make the white text appear crisper.
[16:50] <MacSlow> In that case the text is initially rendered offscreen as a mask...
[16:51] <MacSlow> That mask is used to draw (offscreen again) the text in dark-grey...
[16:51] <MacSlow> This is blurred to give it the "glow"...
[16:51] <MacSlow> then the same text-mask is used to paint in white over it...
[16:52] <MacSlow> only now the assembled result is them blit on screen
[16:54] <MacSlow> Ok, so much for this short glimpse into the world of UI/bling hacking.
[16:55] <MacSlow> Now is hte time to ask any sort of UI/graphics related questions you didn't see fitting before.
[16:58] <MacSlow> AlanBell_ asked: does the bling slow things down? all that double rendering and blurring sounds like a lot of work
[16:58] <MacSlow> Of course there is a burden for doing this.
[16:58] <MacSlow> But with clever caching you can eliminate some of the CPU/GPU-load
[16:59] <MacSlow> First of all if you on a CPU try to restrict the area to blur as much as you can... and cache the result, if you can/need to reuse it later.
[17:00] <MacSlow> next thing is to be clever about the algorithm to blur
[17:00] <MacSlow> it's easier on the CPU to do a box-blur than a full gaussian-blur
[17:03] <AlanBell> Hello and welcome to this Application Developer week session on Python.
[17:03] <AlanBell> This session is an introduction to Python from the very very beginning, I going to do my best to assume no prior knowledge at all.
[17:03] <AlanBell> just so I can see who is here say hi in the #ubuntu-classroom-chat channel o/
[17:04] <AlanBell> great, good to see you all
[17:04] <AlanBell> Python is a programming language, but not a scary hard one.
[17:04] <ClassBot> nitrat_gray asked: hello
[17:05] <AlanBell> oh, clever nitrat_gray, and yes, that is a good demo of how to ask a question!
[17:05] <AlanBell> Python is kind of like BASIC, except you don't have to be embarrassed about saying you are a Python programmer!
[17:05] <AlanBell> OK, so lets get started.
[17:05] <AlanBell> So we are going to write a computer program, which is a set of instructions to the computer to tell it to do some interesting stuff for us.
[17:06] <AlanBell> Lets get set up first, we are going to need a text editor to write the instructions in and a terminal to tell the computer to do the instructions.
[17:06] <AlanBell> You will find the text editor and the terminal next to each other in the Applications-Accessories menu
[17:06] <AlanBell> go open both now and arrange the screen so you can see the IRC classroom and the editor and the terminal all at once
[17:07] <AlanBell> are we sitting comfortably with three windows on screen?
[17:07] <AlanBell> plain old text editor is perfect, none of your fancy IDEs for this session
[17:08] <AlanBell> Traditionally the first program you should write in any language is one to get the computer to say hello to the world! so lets do that.
[17:08] <AlanBell> in the text editor type the following:
[17:08] <AlanBell> print "Hello, World!"
[17:09] <AlanBell> that is it, your first program, now lets save it and run it (I did tell you it looked like BASIC)
[17:09] <AlanBell> file-save as and call it hello.py
[17:09] <AlanBell> this will save it into your home directory by default, fine for now, but you would probably want to be a bit more organised when doing something serious
[17:10] <ClassBot> jledbetter_ asked: Does it have to be in a certain dir?
[17:10] <AlanBell> no, not particularly
[17:10] <AlanBell> ok, now in the terminal lets run the program
[17:10] <AlanBell> python hello.py
[17:11] <AlanBell> doesn't matter so much where you save the program, but always save your python programs with a name ending in .py
[17:11] <AlanBell> It should respond by greeting the world in a friendly fashion
[17:11] <AlanBell> so at the $ prompt in the terminal you just type "python hello.py"
[17:12] <AlanBell> as we saved the hello.py in the home directory and the termial opens by default to the home directory it should just kinda work
[17:12] <AlanBell> if you save it somewhere else you would use the cd command in the terminal to go to the right place
[17:13] <AlanBell> ok, so that was running the program by running python then the name of our application, but we can do it a different way, by telling Ubuntu that our program is executable
[17:14] <AlanBell> What we are going to do now is try to make our program directly executable, in the terminal we are going to CHange the MODe of the program to tell Ubuntu that it is eXecutable
[17:14] <AlanBell> so at the $ prompt of the terminal type:
[17:14] <AlanBell> chmod +x hello.py
[17:14] <AlanBell> now we can try to run it
[17:14] <AlanBell> again at the $ prompt
[17:14] <AlanBell> ./hello.py
[17:15] <AlanBell> oh noes!!!
[17:15] <AlanBell> Warning: unknown mime-type for "Hello, World!" -- using "application/octet-stream"
[17:15] <AlanBell> ubuntu doesn't know how to run this application yet, we need to add some extra magic at the top of our program to help it understand what to do with it.
[17:16] <AlanBell> back in the editor, above the print "Hello, World!" add the following line
[17:16] <AlanBell> #!/usr/bin/env python
[17:17] <AlanBell> so the /usr/bin/env bit is some magic that helps it find stuff, and the thing it needs to run this application is python
[17:17] <AlanBell> now you should be able to save that and flip back to the terminal and run your program
[17:17] <AlanBell> ./hello.py
[17:18] <AlanBell> ok, so the magic line at the top you don't need to worry about  too much, it just has to be there or you might end up seeing that error message
[17:19] <ClassBot> AbhiJit asked: i remember that '#' is used to comment something. but here why we have commented? and if we commented then how ubuntu knows what to do?
[17:19] <AlanBell> excellent question
[17:19] <AlanBell> from the point of view of python that is indeed a comment that it ignores
[17:19] <AlanBell> so when you run python hello.py it will ignore the first line, it doesn't care
[17:20] <AlanBell> the #!something bit is read by bash (I think)
[17:20] <AlanBell> it checks the first two bytes for #! then looks at the rest of the line for instructions on what to do with it
[17:20] <AlanBell> quite a lot of different file types start with #!
[17:21] <AlanBell> ok, everyone have a running program now?
[17:22] <AlanBell> OK, lets go on to the next concept, giving our program some structure
[17:22] <AlanBell> back to the editor, and between the two lines we have already add a new line
[17:22] <AlanBell> while 2+2==4:
[17:22] <AlanBell> and on the next line put four spaces before the print "Hello, World!"
[17:23] <AlanBell> save that
[17:23] <AlanBell> so the while statement starts a loop, in this instance it will carry on until 2+2 is equal to something other than 4
[17:23] <AlanBell> the double equals means "is equal to" a single equals is used to assign a value to something (more on that later)
[17:24] <AlanBell> the colon at the end is an important part of the while statement.
[17:24] <AlanBell> There is no "until" "wend" "end while" type statement at the end, as you might expect to find in lesser languages :)
[17:24] <AlanBell> the indentation of the print statement is not just cosmetic and for our benefit
[17:25] <AlanBell> the indentation level is part of the language, when the indentation stops that is the end of the loop (or other structure that you might expect to have an end)
[17:25] <AlanBell> this means that python always looks neat and tidy (or it doesn't work)
[17:26] <AlanBell> Always use four spaces to indent, not three, not five and certainly not a tab.
[17:26] <AlanBell> Other indentations will work, but if you ever have to work with anyone else you must always be using the same indentation, so we all get in the habit of using four spaces.
[17:26] <AlanBell> Lets run our new program, just save it in the editor and run it again in the terminal with ./hello.py
[17:26] <ClassBot> jledbetter_ asked: 4 always? So if nesting, 8 spaces?
[17:27] <AlanBell> yes, 4 spaces per level of indentation
[17:27] <AlanBell> so if you have a for loop inside a while loop the inner code would be 8 spaces deep
[17:27] <ClassBot> skkeeper asked: not using a TAB is a matter guaranteeing the code works on multiple platforms right?
[17:28] <AlanBell> no, not so much, tabs are portable. In fact I kinda wish the convention was tabs.
[17:28] <AlanBell> the issue is portability amongst humans
[17:28] <AlanBell> if you have two humans working on some code, one likes 4 spaces the other likes tabs you are going to get a ton of errors
[17:29] <AlanBell> in gedit if you go to the preferences window, editor tab
[17:29] <AlanBell> you can set the tab width to 4 and check the box Insert spaces instead of tabs
[17:29] <AlanBell> ok, so you have the program running now?
[17:30] <AlanBell> now we can wait for 2+2 to be something other than 4.
[17:30] <AlanBell> or, if you are in a hurry, you can press ctrl+c
[17:31] <AlanBell> ok, so ctrl+c is handy for breaking in to an out-of-control python program
[17:31] <AlanBell> you can do other fun stuff with the print statement, if you change it to read:
[17:31] <AlanBell>     print "Ubuntu totally rocks!   ",
[17:32] <AlanBell> and run it again (note the comma at the end)
[17:32] <AlanBell> you will see it doesn't do a newline and fills your terminal with stuff
[17:32] <AlanBell> ctrl+c again to break out of it
[17:32] <AlanBell> OK, that was fun wasn't it!
[17:33] <AlanBell> lets do something different now
[17:33] <AlanBell> in the terminal, type python at the $ prompt and hit return
[17:33] <AlanBell> you should have a >>> prompt and a cursor
[17:33] <AlanBell> this is the interactive python console
[17:34] <AlanBell> you can type print "hello" here if you want
[17:34] <AlanBell> or do some maths like:
[17:34] <AlanBell> print 2**1000
[17:34] <AlanBell> which will show you the result of 2 multiplied by itself a thousand times
[17:34] <AlanBell> python is kinda good at maths
[17:35] <AlanBell> you could even try "print 2**100000" it won't take long, and you can always stop it with ctrl+c
[17:35] <ClassBot> AbhiJit asked: what does ** means in 2**1000?
[17:35] <AlanBell> 2 to the power of 1000
[17:35] <AlanBell> or 2*2*2*2 . . . .
[17:36] <AlanBell> as mhall119 points out, in the console you don't really need the print statement (but I like it)
[17:37] <AlanBell> while we are on the subject of maths, lets get the value of pi
[17:37] <AlanBell> print pi won't do anything useful (but feel free to try it)
[17:37] <AlanBell> we need more maths ability than the python language has built in
[17:37] <AlanBell> so we need to get a library of specialist maths stuff, so type
[17:37] <AlanBell> import math
[17:38] <AlanBell> it will look like it did nothing, but don't worry
[17:38] <AlanBell> print math.pi
[17:38] <AlanBell> that should return 3.14159265359
[17:38] <AlanBell> So we have seen here how to import a library of functions to do something, and called one of the functions from the library
[17:38] <ClassBot> resno asked: How do you know where packages are and which to import?
[17:39] <AlanBell> there are stacks of python packages in Ubuntu, have a look in synaptic at everything starting "python-" as to what is in them, just getting to that . . .
[17:40] <AlanBell> ok, so what is in the math package, apart from pi?
[17:40] <AlanBell> try typing dir(math) at the python console
[17:40] <AlanBell> ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'hypot', 'isinf', 'isnan', 'ldexp', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
[17:41] <AlanBell> you can also look at http://docs.python.org/library/math.html
[17:42] <ClassBot> skkeeper asked: How can I ask for a more precise value of pi?
[17:42] <AlanBell> skkeeper: I have no idea! I am sure there is a library for that
[17:43] <AlanBell> dir() is a good way to find out what something can do for you
[17:43] <AlanBell> there is also a help() command which is useful
[17:45] <AlanBell> All this command line stuff is all very well, but we want to do applications that have pretty windows and stuff!
[17:45] <AlanBell> In the interactive console type or paste the following
[17:45] <AlanBell> import gtk
[17:45] <AlanBell> which will load a library full of stuff to do with the gtk toolkit that powers the gnome desktop
[17:45] <AlanBell> foo=gtk.Window(gtk.WINDOW_TOPLEVEL)
[17:46] <AlanBell> that assigns a window object to a variable called foo
[17:46] <AlanBell> (the name doesn't matter, the single equals does)
[17:46] <AlanBell> but nothing  much seems to have happened yet, so type:
[17:46] <AlanBell> foo.show()
[17:46] <AlanBell> yay, a real live little window should be on screen now!
[17:47] <AlanBell> lets see what we can do to it with dir(foo)
[17:47] <AlanBell> quite a lot! lets try:
[17:47] <AlanBell> foo.set_title("my little window")
[17:47] <AlanBell> I think you have to click on your window for the title to update
[17:48] <AlanBell> go ahead and change the title a few times
[17:48] <ClassBot> nitrat_gray asked: are all the class references case-sensitive?
[17:48] <ClassBot> bas89 asked: is it with Qt as easy as with gtk?
[17:49] <AlanBell> there is a certain amount of case sensitivity, but there are conventions on how to use case
[17:49] <AlanBell> http://www.python.org/dev/peps/pep-0008/
[17:49] <AlanBell> the style guide has more detail on case conventions
[17:50] <AlanBell> yes, I believe QT is just as easy as GTK
[17:50] <AlanBell> when developing applications you would generally use an IDE and a user interface builder like Glade, what I want to show today is the relationship between command line code and windowing code and the lack of special magic required!
[17:51] <ClassBot> resno asked: What is the best source to learn more python? python.net?
[17:51] <AlanBell> there are a number of books that are good
[17:51] <AlanBell> I like Snake Wrangling for kids
[17:52] <AlanBell> also there is a book in the repos called dive into python
[17:52] <AlanBell> as to the snake questions, python is indeed a snake, but it was named after the Monty Python comedy series
[17:53] <AlanBell> I should really have used spam as my window variable name rather than foo
[17:53] <AlanBell> oh yeah, the oreilly learning python book with a rat on the cover is on my desk
[17:53] <AlanBell> ok, so now lets recap on what we have covered
[17:53] <AlanBell> #!/usr/bin/env python goes at the top of your file
[17:54] <AlanBell> loops don't have end statements, the indentation is part of the syntax and makes end statements redundant
[17:54] <AlanBell> indentation is 4 spaces
[17:54] <AlanBell> not 3, not 5
[17:54] <AlanBell> not tabs
[17:54] <AlanBell> 4
[17:54] <AlanBell> libraries are collections of useful stuff, loaded with the import statement
[17:54] <AlanBell> Python is easy and fun!
[17:55] <AlanBell> oh yeah, and as mentioned in the -chat to get out of the interactive python console do ctrl+d or exit()
[17:55] <AlanBell> or quit()
[17:55] <AlanBell> great, 5 minutes or so for questions, and keep them easy because I am not that good a programmer :)
[17:56] <AlanBell> recommended IDE, well I like gedit, it does python syntax highlighting which is awesome (does it automatically on files ending in .py)
[17:56] <AlanBell> there is also SPE which used to be my favorite
[17:57] <AlanBell> stani's python editor
[17:57] <AlanBell> and stani is the person who designed an awesome bit of dutch currency
[17:57] <AlanBell> !info spe
[17:57] <AlanBell> oh, no bot to do that :(
[17:58] <ClassBot> AbhiJit asked: is for(i=0;i<=10;i++): is right?
[17:58] <ClassBot> lmh74 asked: best IDE for python in my opinion is Geany with the VTE, very light weight but effective
[17:58] <ClassBot> AbhiJit asked: i actually wanted for,while,do while syntax. please?
[17:58] <ClassBot> bas89 asked: What software is good for designing GUIs?
[17:58] <AlanBell> AbhiJit: nope, not quite
[17:59] <AlanBell> try this
[17:59] <AlanBell> for i in range(10):
[18:00] <AlanBell> the for statement itterates over arrays and collections, range makes an array of the numbers 0 to 10
[18:00] <AlanBell> geany sounds good
[18:00] <AlanBell> oh I am done!
[18:00] <ClassBot> Slides for Contributing without the Command Line: http://divajutta.com/doctormo/foo/slides/
[18:02] <Pendulum> thanks AlanBell!
[18:02] <Pendulum> Next up is doctormo with Contributing without the Command Line
[18:02] <doctormo> Hello everyone
[18:03] <doctormo> Once you have something to contribute to a project, or a project of your own to get busy with. You need to be able to store your files and share them with outs.
[18:03] <doctormo> others*
[18:03] <doctormo> Traditionally in programming this is done with a repository system. This is a system which logs your files and the changes you make to them.
[18:04] <doctormo> The system used in Ubuntu is bazaar (bzr) but it's quite possible to do development with git or mecural. there does exist other repositories cvs and svn but use is discouraged now that we have good distributed repositories.
[18:05] <doctormo> The problem with all of these systems for storing files
[18:05] <doctormo> Is that they all use the command line
[18:05] <doctormo> And many programmers like the command line
[18:05] <doctormo> With is fine
[18:05] <doctormo> Which is fine*
[18:05] <doctormo> But there are plenty of contributions, developing an application which are not programming and could quite reasonably be done by someone who has never used the command line.
[18:06] <doctormo> which is why I'll be talking about how you can contribute to a project and use these repositories without ever touching the command line.
[18:07] <doctormo> http://divajutta.com/doctormo/foo/slides/slide-00.png
[18:07] <doctormo> OK so first, show of hands who's listening in on chat?
[18:09] <doctormo> OK so for this exercise we have some requirements
[18:09] <doctormo> http://divajutta.com/doctormo/foo/slides/slide-01.png
[18:09] <doctormo> You'll need Ubuntu or Design with gnome and we'll be using you launchpad account.
[18:11] <doctormo> OK so the first thing to do is to install groundcontrol, you can install this package via the command line or via the Software Center.
[18:12] <doctormo> Ground control was designed to let users interact with launchpad and bazaar in a way that made it fun and easy to code, design and do other things.
[18:12] <doctormo> http://divajutta.com/doctormo/foo/slides/slide-02.png
[18:13] <doctormo> If you've got groundcontrol installed, then let's begin
[18:13] <doctormo> http://divajutta.com/doctormo/foo/slides/slide-03.png
[18:13] <doctormo> Go to System > Preferences > Ground Control Configuration
[18:14] <doctormo> In here you will press the button to log onto your language account, enter your email address and password and wait for launchpad to give your keys.
[18:15] <doctormo> Now for those who have not done development on launchpad before, you will be asked to create some ssh keys. These are keys that allow you to securely interact with launchpad bzr branches.
[18:16] <doctormo> Once complete, you should have a fully set up development environment. Congratulations!
[18:17] <doctormo> Now all you have to do is go to Places > Home Folder. You will get a nautilus window and in there you should have a new Projects folder
[18:17] <doctormo> this folder will be used to hold projects downloaded from launchpad (you can rename it and move it anywhere you like)
[18:20] <doctormo> Once inside the Projects folder you will find a bar on the top, in that bar will be two buttons.
[18:21] <doctormo> Something like this: http://doctormo.ubuntu-ma.us/wp-content/uploads/2010/01/screenshot1.png
[18:21] <doctormo> The Get Project button will pop up a window to search for a launchpad project. We're going to do a search for groundcontrol it's self.
[18:22] <doctormo> Fetch Project*
[18:23] <doctormo> If you don't see that bar then it's because nautilus needs to restart, you could do this with a computer restart, but we'll just do this: Alt+F2 and type in nautilus --quit
[18:23] <doctormo> It'll automatically reload.
[18:23] <doctormo> Normally the groundcontrol packagaing restarts nautilus for you, but restarting nautilus is a known hazard.
[18:26] <doctormo> OK so I'll let those people catch up http://divajutta.com/doctormo/foo/slides/Screenshot.png
[18:27] <doctormo> Now once you've pressed ok on the project search/select window, ground control will download the project from launchpad and make a new groundcontrol folder.
[18:28] <doctormo> Navigating into that directory will give you a new set of buttons, one of which is "Fetch Branch"
[18:28] <doctormo> Click on that
[18:28] <doctormo> When it loads, click on the Trunk branch, give it a name or put your name in the "local branch name:" field.
[18:29] <doctormo> When you press ok it's download the branch
[18:29] <doctormo> http://divajutta.com/doctormo/foo/slides/Screenshot-1.png
[18:30] <doctormo> you will have  new folder
[18:30] <doctormo> What will will do is go into this folder and edit the README file
[18:31] <doctormo> this is a very important point about ground control and the "Desktop as your IDE" theme.
[18:31] <doctormo> GC and projects like her do not reinvent the IDE wheel by trying to manage your code, or giving you editors. There are far too many types of files to make an IDE with all kinds of editors possible.
[18:31] <doctormo> So use what you like to edit the files you want to.
[18:32] <doctormo> when you save the file, you should notice that the buttons in this bar have changed to "Commit Files"
[18:32] <doctormo> Commit Changes*
[18:34] <doctormo> I just discovered there is an error here, but it's new and never been seen before. So it'll have to be reported after this session ends.
[18:34] <doctormo> You should still have downloaded a branch however.
[18:36] <doctormo> If you see a "Read Only Branch" message, this is because the error causes the configuration to be wrong, it never sets a push location so you can't commit code.
[18:39] <doctormo> So you can show hidden files, go into a directory called .bzr then into brach and edit a file called branch.conf
[18:40] <doctormo> In here there should have been set the push_location = bzr+ssh://bazaar.launchpad.net/~[username]/groundcontrol/[your-banch-name]/
[18:41] <doctormo> If you do manage to set that and tell natulus to browse the branch directory again, you should have a commit button instead of a read only warning.
[18:42] <doctormo> Pressing the commit button will allow you to specify what you changed: http://divajutta.com/doctormo/foo/slides/Screenshot-2.png
[18:42] <doctormo> Once that's done we'll need to upload, it's a simple matter of pressing the Upload Branch button that appears.
[18:48] <doctormo> OK I tried this with another project and it worked fine... something about ground control's lp project perhaps. If you are having dificulty then please download the ubuntu-learning-materials project using the method above.
[18:48] <doctormo> And download the website branch and modify that and continue on from there...
[18:49] <doctormo> Once you've uploaded your changes you'll be presented with a Request Merge button, this part is not in bzr.
[18:50] <doctormo> http://divajutta.com/doctormo/foo/slides/Screenshot-3.png
[18:50] <doctormo> This will let the project owners know that you've completed some work and you'd like it to be reviewed and merged in.
[18:51] <doctormo> Congratulations, if you've managed to dodge the trip wires in this session, you'll have contributed to ubuntu and it's projects.
[18:51] <doctormo> There is more functionality to groundcontrol that allows project maintainers to merge-in, and you can specify bugs and so on when doing commits. play with it.
[18:51] <doctormo> Now I will answer some questions.
[18:53] <doctormo> Question: Can I erase the groundcontrol folder whit nautilus? or I have to use another method?
[18:53] <doctormo> I don't understand this question
[18:53] <doctormo> QUESTION: can name contain spaces? do they need to be escaped or quoted or can they just be typed normally?
[18:53] <doctormo> Branch names should probably not contain spaces.
[18:54] <doctormo> QUESTION: So once I download a project and modify its source (lets say fix a big, implement a feature, etc), all I have to do is commit it for review? The file I modified will be uploaded for review?
[18:54] <doctormo> Yes, you've made a branch of the original code and the project owners can see the changes you've made.
[18:54] <doctormo> Question: Is there a way to views diffs from within nautilus (right-click/diffs with previous version...)?
[18:54] <doctormo> Use the commit window, clicking on any file will show you a diff
[18:54] <doctormo> QUESTION: What does GC do when it say "Loading Launchpad"? Why does it take so long and why is there a need for GC to do that just to search for a project on launchpad?
[18:55] <doctormo> It's getting a brand new OAuth token each time, it takes time and isn't very good.
[18:55] <doctormo> MAfifi asked: How's that different from the explorer plugin in bzr for example?
[18:56] <doctormo> the bzr explorer and gtk-bazaar plugins are designed around the idea of providing ALL of bazaar functionality into nautilus with very little workflow design. It's the command line for your browser.
[18:56] <doctormo> GC on the otherhand is more a tool for the launchpad/bazaar development workflow rather than just being a bzr tool.
[18:57] <doctormo> It has all the social rules built in and best practices.
[18:57] <ClassBot> MAfifi asked: How's that different from the explorer plugin in bzr for example?
[18:57] <ClassBot> MAfifi asked: Does it work with nautilus only? Can it work with dolphin in KDE as well?
[18:58] <doctormo> the version in lucid and maverick only work in gnome/nautilus. There is no reason it couldn't work in kde/dolphin. Just needs a developer to do the work.
[19:00] <ClassBot> CajunTechie asked: Can I create a new project using GC? I notice that was scheduled for inclusion but don't see it anywhere
[19:00] <doctormo> The current version in lucid can not create projects.
[19:00] <ClassBot> sinisterstuf asked: Can I delete my local branch just by selecting the folder in nautilus and moving it to the deleted items folder?
[19:03] <thekorn> Okidoki, I guess it's my turn now....
[19:04] <thekorn> Hi, everybody, my name is Markus Korn, I'm one of the Maintainers of zeitgeist, and I would like to talk to you about ways to get your apps data into zeitgeist
[19:04] <thekorn> so, first of all, What's zeitgeist?
[19:05] <thekorn> zeitgeist started as one result of the 2008 Boston user experience hackfest
[19:05] <thekorn> it started with a full featured UI, which was call gnome-journal
[19:05] <thekorn> and it's basic idea ist to track 'events' on your desktop
[19:05] <thekorn> so, first of all, what's an event
[19:05] <thekorn> .
[19:06] <thekorn> An event is something you do on your computer,
[19:06] <thekorn> like opening files, visting web pages, swithing the focus of your application, and so on
[19:07] <thekorn> GNOME (and I'm sure other systems like KDE have one too) has something called "recently used documents"
[19:07] <thekorn> you can see them in the places menu
[19:07] <thekorn> but zeitgeist is more than that
[19:07] <thekorn> it tries to provide a unified way for ALL your events
[19:08] <thekorn> so yo don't have the history of all your browsers, the history of played songs, etc.
[19:08] <thekorn> .
[19:08] <thekorn> And zeitgeist needs the applications to feed their events into the zeitgeist system,
[19:09] <thekorn> and that's what this talk is baout
[19:09] <thekorn> any question so far?
[19:09] <thekorn> or can we start with some coding ;)
[19:10] <thekorn> augdawg> what webrowsers use zeitgeist?
[19:10] <thekorn> right now we support firefox, chromium, epiphany, and support for opera is in developemnt
[19:11] <thekorn> .
[19:11] <thekorn> so that's the plan for this Session: we all know this beautiful app called software-center
[19:12] <thekorn> and how cool would it be if we can track the applications you visit in the app by zeitgeist
[19:12] <thekorn> so whenever you open an app page there, track a zeitgeist event
[19:12] <thekorn> .
[19:12] <thekorn> to follow this example, you have to option,
[19:12] <thekorn> +s
[19:13] <thekorn> 1.) try to follow the steps I do here on this channel locally,
[19:13] <thekorn> or
[19:14] <thekorn> 2.) just read, and I will try to paste as much code as possible on the internet, I'll give you links
[19:14] <thekorn> .
[19:14] <thekorn> first of all, we need some software installed, so please run
[19:14] <thekorn> sudo apt-get install intltool raptor-utils python-sphinx bzr
[19:14] <thekorn> .
[19:14] <thekorn> btw, please tell me when I'm too fast/slow
[19:14] <thekorn> .
[19:15] <ClassBot> augdawg asked: what language will we be using?
[19:15] <thekorn> in this example we will use python,
[19:16] <thekorn> but as you find out soon, you talk to zeitgeist using dbus,
[19:16] <thekorn> so you can basically try to reproduce the examples in any language which has dbus support
[19:16] <thekorn> .
[19:17] <thekorn> just a small note to the users using unity, or which have zeitgeist already installed and running on their system,
[19:17] <thekorn> you might want to backup your activity log, so just incase we insert some garbage, you can restore your old database after this session,
[19:17] <thekorn> to do so please run
[19:18] <thekorn> cp ~/.local/share/zeitgeist/activity.sqlite ~/Desktop
[19:18] <thekorn> .
[19:18] <thekorn> I think everybody should now have the app installed, let's get started
[19:19] <thekorn> cd ~
[19:19] <thekorn> (so we are all in the same dir, please use any other dir if you like)
[19:19] <thekorn> now we get the zeitgeist source
[19:19] <thekorn> wget http://edge.launchpad.net/zeitgeist/0.5/0.5.2/+download/zeitgeist-0.5.2.tar.gz
[19:19] <thekorn> tar xzf zeitgeist-0.5.2.tar.gz
[19:19] <thekorn> cd zeitgeist-0.5.2
[19:19] <thekorn> ...and unpack it
[19:20] <thekorn> ...and now we just build zeitgeist
[19:20] <thekorn> ./configure
[19:20] <thekorn> make
[19:20] <thekorn> this might take a while
[19:23] <thekorn> ok, next step is to run zeitgeist
[19:24] <thekorn> upps, I'm too fast :(
[19:24] <thekorn> loet's have some questions first
[19:24] <ClassBot> sinisterstuf asked: What is dbus?
[19:24] <thekorn> dbus is a way for applications to communicate to each other using a socket
[19:26] <thekorn> QUESTION : so zeitgeist is written in python?
[19:26] <thekorn> yes it is
[19:27] <thekorn> to run zeitgeist, we need a clean environment
[19:27] <thekorn> mkdir /tmp/zeitgeist-data
[19:27] <thekorn> export ZEITGEIST_DATA_PATH=/tmp/zeitgeist-data
[19:27] <thekorn> this tells zeitgeist where to write the data
[19:28] <thekorn> and now we can run the daemon
[19:28] <thekorn> ./zeitgeist-daemon --no-datahub --replace
[19:28] <thekorn> --replace should kill any running zeitgeist instances
[19:28] <thekorn> so far so good, we now have a running zeitgeist instace, which we can feed data into
[19:29] <thekorn> let's open a new terminal, and start writing a plugin to software-center which does the job
[19:29] <thekorn> .
[19:30] <thekorn> .
[19:31] <thekorn> ok, let's say the deamon is running, open a new terminal, and run
[19:31] <thekorn> export PYTHONPATH=~/zeitgeist-0.5.2
[19:32] <thekorn> this will tell software-center where to find the zeitgeist modul
[19:33] <thekorn> and now we can start writing the software-center plugin....
[19:33] <thekorn> let's get a first version
[19:33] <thekorn> bzr cat -r 1 http://bazaar.launchpad.net/~thekorn/+junk/softwarecenter-zeitgeist-plugin/softwarecenter-zeitgeist-plugin.py > ~/zeitgeist-plugin.py
[19:34] <thekorn> (or for the people who just want to see the code  http://bazaar.launchpad.net/~thekorn/%2Bjunk/softwarecenter-zeitgeist-plugin/annotate/1/softwarecenter-zeitgeist-plugin.py)
[19:34] <thekorn> this is a *very* minimal plugin for software-center
[19:34] <thekorn> .
[19:35] <thekorn> unfortunatly s-c has no other way to load the plugin then loading it from some system dir
[19:35] <thekorn> so, let's symlink this file to the right place
[19:36] <thekorn> sudo mkdir -p /usr/share/software-center/plugins
[19:36] <thekorn> cd /usr/share/software-center/plugins
[19:36] <thekorn> sudo ln -s ~/zeitgeist-plugin.py .
[19:36] <thekorn> cd ~
[19:37] <thekorn> .
[19:37] <thekorn> has everybody done this successfully?
[19:37] <thekorn> .
[19:38] <thekorn> if you now run  software-center --debug   from the terminal you should see the loading message somewhere
[19:38] <thekorn> .
[19:39] <thekorn> but anyway, this plugin does nothing so far
[19:39] <thekorn> let's pimp it
[19:39] <thekorn> bzr cat -r 2 http://bazaar.launchpad.net/~thekorn/+junk/softwarecenter-zeitgeist-plugin/softwarecenter-zeitgeist-plugin.py > ~/zeitgeist-plugin.py
[19:39] <thekorn> or
[19:39] <thekorn> http://bazaar.launchpad.net/~thekorn/%2Bjunk/softwarecenter-zeitgeist-plugin/annotate/2/softwarecenter-zeitgeist-plugin.py
[19:39] <thekorn> for the reader out there ;)
[19:40] <thekorn> this code does two things
[19:40] <thekorn> 1.) it creates a connection to the zeitgeist daemon,
[19:40] <thekorn> by running   ZeitgeistClient()
[19:41] <thekorn> 2.) it connects to the signal of software-center which indicates a user switching the view
[19:42] <thekorn> now run   software-center  --debug   again,   and you should see some logging when you swith between applications
[19:42] <thekorn> by switching I mean  "clicking the "read more" button
[19:42] <thekorn> .
[19:43] <thekorn> is it working so far for everybody?
[19:43] <thekorn> great
[19:45] <ClassBot> aseem24 asked: it's working but i get this on my terminal..DEBUG:root:run_thumb_missing_js
[19:45] <thekorn> this just sounds like a debugging message from s-c, nothing to care about
[19:46] <thekorn> let's just ignore it for now
[19:46] <ClassBot> iamlouis asked: when I change view should I see anything in the zeitgeist terminal output? Using rev 2 of the plugin
[19:46] <thekorn> nothing yet, we come to it NOW!
[19:47] <thekorn> bzr cat -r 3 http://bazaar.launchpad.net/~thekorn/+junk/softwarecenter-zeitgeist-plugin/softwarecenter-zeitgeist-plugin.py > ~/zeitgeist-plugin.py
[19:47] <thekorn> (or, again: http://bazaar.launchpad.net/~thekorn/%2Bjunk/softwarecenter-zeitgeist-plugin/annotate/3/softwarecenter-zeitgeist-plugin.py)
[19:48] <thekorn> now, this change actually tells s-c which event to insert into zeitgeist
[19:48] <thekorn> I'll paste it here, because it's important ;)
[19:48] <thekorn> event = Event.new_for_values(
[19:48] <thekorn>             interpretation=Interpretation.ACCESS_EVENT,
[19:48] <thekorn>             manifestation=Manifestation.USER_ACTIVITY,
[19:48] <thekorn>             actor="application://software-center.desktop",
[19:48] <thekorn>             subject_uri="application://%s" %app.pkgname,
[19:48] <thekorn>             subject_interpretation=Interpretation.SOFTWARE,
[19:48] <thekorn>             subject_manifestation=Manifestation.SOFTWARE_ITEM,
[19:48] <thekorn>         )
[19:48] <thekorn> as you can see, Events do have a certain structure
[19:52] <fagan> thekorn is after losing connection so he cant type in here :/
[19:53]  * thekorn checks the mic...
[19:53] <thekorn> let's continue with the structure of Events
[19:54] <thekorn> event = Event.new_for_values(
[19:54] <thekorn>             interpretation=Interpretation.ACCESS_EVENT,
[19:54] <thekorn>             manifestation=Manifestation.USER_ACTIVITY,
[19:54] <thekorn>             actor="application://software-center.desktop",
[19:54] <thekorn>             subject_uri="application://%s" %app.pkgname,
[19:54] <thekorn>             subject_interpretation=Interpretation.SOFTWARE,
[19:54] <thekorn>             subject_manifestation=Manifestation.SOFTWARE_ITEM,
[19:54] <thekorn>         )
[19:54] <thekorn> events have na interpretation,
[19:54] <thekorn> which means: what is the event about
[19:54] <thekorn> a manifestation, which is: who does something
[19:54] <thekorn> and it has an actor
[19:55] <thekorn> which is, who does something
[19:55] <thekorn> so in this case, the s-c app visits an application page on behalf of the user
[19:56] <ClassBot> testtest asked: ?:Thoughts on privacy, user opt-out?
[19:56] <thekorn> yes, we have ways to blacklist certain events
[19:56] <thekorn> and there are already UIs implementing this
[19:56] <thekorn> it is call Backlist in our terms
[19:57] <thekorn> okidoki, I've only four minutes left
[19:57] <thekorn> and I'm a bit running out of time
[19:57] <thekorn> the last revision (revno 3) is basically a working dataprovider for s-c
[19:58] <thekorn> so whenever you start s-c now, and visit an application's page
[19:58] <thekorn> an event should be inserted into zeitgeist
[19:59] <thekorn> one of our devs Seif Lotfy will talk about ways to get this data back later this week
[19:59] <thekorn> .
[19:59] <thekorn> I would like to end this session with some ressource:
[19:59] <thekorn> first of all, if you are interressted in this project, or have any questions, please join us in the #zeitgeist channel
[20:00] <thekorn> or visit our webpage at   www.zeitgeist-project.com
[20:00] <thekorn> or our launchpad page at launchpad.net/zeitgeist
[20:00] <thekorn> we also have bindings for other languages like C, C#, vala, java, etc.
[20:00]  * fagan loves vala
[20:01] <fagan> thanks thekorn :)
[20:01] <fagan> Ok hi everyone
[20:01] <fagan> and im going to talk about the infamous quickly
[20:02] <fagan> So to start this is a preview release of the Quickly Vala template.
[20:02] <fagan> Its not in the repo yet and is very very new. It has a good lot of things working so far but not packaging or building.
[20:02] <fagan> Also translations are not working yet properly because it relies on the build systems for Vala.
[20:03] <fagan> Its still a good start and is usable at the moment for little projects that you want to do.
[20:03] <fagan> Oh and if you have questions ill be looking at the chat so ill get to them as soon as i can.
[20:03] <fagan> So lets get this started then
[20:04] <fagan> first we need to prepare a little to run this template you need quickly and Valac installed so if you don't have them run this command please:
[20:04] <fagan> sudo apt-get install quickly valac
[20:05] <ClassBot> augdawg asked: when it hits the repos, i assume it wil do this automatically right?
[20:05] <fagan> Well I didnt want it in the maverick repos
[20:05] <fagan> Im waiting for the build issues and other stuff to be fixed first
[20:06] <fagan> Now lets start get the template
[20:06] <fagan> so open up the terminal and type:
[20:06] <fagan> mkdir quickly-templates;cd quickly-templates;bzr branch lp:~shanepatrickfagan/quickly/Quickly-vala
[20:07] <fagan> (in the root directory of your home)
[20:07] <fagan> Now you should have everything you need
[20:07] <fagan> Is everyone good?
[20:07] <fagan> Ok ill slow down a bit :)
[20:08] <fagan> ok so moving on
[20:08] <fagan> lets get making programs then
[20:08] <fagan> ok get out of the quickly templates directory: cd ..
[20:08] <fagan> run this command in terminal to get your project created:
[20:09] <fagan> quickly create Quickly-vala <project name>
[20:09] <fagan> Good?
[20:10] <fagan> Now our project is set up and the directory is created.
[20:10] <fagan> So now go into your project directory
[20:10] <fagan> cd <project name>
[20:10] <fagan> So are you all there?
[20:11] <fagan> So in this directory you will see a /bin /data and two text files so its very similar to the other quickly projects that you may have used before.
[20:11] <fagan> you can now run the project with
[20:11] <fagan> quickly run
[20:11] <fagan> just like the python templates
[20:12] <fagan> This command does a few things it compiles the .vala file and runs it.
[20:12] <fagan> so it needs to do a few things to get the .vala file up and running but its in the background so its all good
[20:12] <fagan> Ill get into the problems with doing this in a little while but first ill get you developing.
[20:12] <fagan> Oki doke so moving on
[20:13] <fagan> anymore questions?
[20:13] <fagan> ok so
[20:14] <fagan> So do get editing your code use:
[20:14] <fagan> quickly edit
[20:14] <fagan> Just like the python template :)
[20:14] <fagan> At the moment I only have 1 .vala project file I plan on adding the about box very soon too.
[20:15] <ClassBot> augdawg asked: can you use glade to desgin a gui?
[20:15] <fagan> yep
[20:15] <fagan> So in gedit you should see the base of a class. So to start developing all you need to do is scroll down to the bottom of the page and look for the line that says "write your code here".
[20:15] <ClassBot> beardygnome asked: i'm running xubuntu - do i need to install gedit?
[20:15] <fagan> sorry about that
[20:15] <fagan> its a bug
[20:16] <fagan> Ill be fixing it later in the week
[20:16] <ClassBot> beardygnome asked: or can i use geany?
[20:16] <fagan> Yep you can
[20:16] <fagan> you just have to double click on the .vala files to edit it
[20:16] <fagan> but still thats a bug
[20:16] <fagan> my bad
[20:17] <fagan> the warning you can ignore
[20:17] <fagan> its a problem with glade and vala not being entirely in sync
[20:17] <fagan> So in gedit you should see the base of a class. So to start developing all you need to do is scroll down to the bottom of the page and look for the line that says "write your code here".
[20:17] <fagan> so its fairly easy to use
[20:17] <fagan> and hopefully there is enough comments to guide you guys
[20:18] <fagan> Oh and on that I tried to use xdg-open instead of just using gedit *.vala but it wasnt working right so I left it.
[20:18] <fagan> thats the way I was originally going to do it
[20:18] <fagan> it doesnt handle multiple files
[20:18] <fagan> so thats why I dropped it
[20:19] <fagan> anyway all the other stuff on the page is gtk and glade stuff
[20:19] <fagan> so you can ignore all of that
[20:19] <fagan> just write your code below the comment saying write your code here
[20:19] <fagan> Here is the link to the Vala docs to get started and developing with code examples:
[20:19] <ClassBot> augdawg asked: what is this written in?
[20:19] <fagan> Well thats a good question actually
[20:20] <fagan> the template is written in sh scripts really
[20:20] <fagan> and the template is for vala so its vala there
[20:20] <fagan> and the create command is pulled from quickly itself so its in python
[20:20] <fagan> and the ui is glade
[20:20] <fagan> ok so
[20:20] <fagan> moving on
[20:20] <fagan> Here is the link to the Vala docs to get started and developing with code examples:
[20:20] <fagan> http://live.gnome.org/Vala/Documentation
[20:21] <fagan> They have most of the code that you will be looking for already there. So just have a poke about and they will give you tutorials on everything
[20:21] <fagan> for beginners to more advanced stuff
[20:21] <fagan> So I should say how to do the glade thing and can you guess what the command is?
[20:21] <fagan> quickly design
[20:22] <fagan> just like the python quickly projects
[20:22] <fagan> :)
[20:22] <fagan> Oh I should say how to add your listeners to the code for glade events
[20:22] <fagan> If you want to create listeners for the widgets you add you just have to use code similar to how I wrote the quit menu item handler in the template itself. Like this:
[20:23] <fagan> [CCode (cname = "G_MODULE_EXPORT name_of_event")]
[20:23] <fagan> public void name_of_event () {
[20:23] <fagan> // code here
[20:23] <fagan> }
[20:23] <fagan> You put the name of your event in there instead for both bits.
[20:23] <fagan> (the name in glade itself)
[20:23] <fagan> oh and the CCode bit is just so it will work on windows too but I like leaving it in anyway even though I wont be porting anything to windows.
[20:24] <fagan> so is everyone still with me?
[20:24]  * fagan moves very fast
[20:25] <fagan> ok I broke quickly design yesterday
[20:25] <fagan> its just the wrong directoy
[20:25] <fagan> ill fix it after this
[20:25] <fagan> my bad
[20:26] <fagan> or data
[20:26] <fagan> sorry
[20:26] <fagan> damn
[20:26] <fagan> anyhow ill move on
[20:26] <fagan> :P
[20:26] <fagan> So we now have you guys editing your projects so what if you add extra classes to the project or you start using an external binding other than gtk+ or glib?
[20:27] <fagan> thats the problem with vala
[20:27] <fagan> You will have to add the binding to the run method with this command:
[20:27] <fagan> quickly edit_run
[20:27] <fagan> and then you will get your editor and have to add the --pkg to compile it properly
[20:27] <fagan> so if you have used Vala before you would know what to add but if you don't its just:
[20:27] <fagan> --pkg <binding>
[20:28] <fagan> and I have the code commented so you guys should find it fairly easily
[20:28] <fagan> Sorry about this problem but we are going to work on this for 11.04 and was the main reason we haven't released it yet.
[20:28] <fagan> its a challenge for me to fix :)
[20:28] <fagan> ok so thats most of the work so far
[20:29] <fagan> is anyone having problems with anything other the quickly design command
[20:29] <fagan> ?
[20:29] <fagan> or do you guys have any questions?
[20:29] <ClassBot> testtest asked: how many terminals should I have open for this
[20:30] <fagan> Well only 1 is needed
[20:30] <fagan> you can type them in a line
[20:30] <ClassBot> beardygnome asked: what should quickly edit_run have done?  it just ran the app when i tried it.
[20:30] <fagan> huh
[20:31] <fagan> oh now I get why it did that
[20:31] <fagan> its not picking it up as a text file
[20:31] <fagan> fail
[20:31] <fagan> :)
[20:31] <fagan> just gedit .run
[20:31] <fagan> and it will do it
[20:31] <fagan> I used xdg-open and it didnt open the text file :/
[20:32] <fagan> anyhow if there are no more questions ill get into what my plans are
[20:32] <fagan> any takers?
[20:32] <fagan> good good
[20:32] <fagan> Ok so my plans are for 11.04 and beyond.
[20:32] <fagan> Well like quickly itself I really want to make things easy. I want everything to be automated and done for the user without much input.
[20:33] <fagan> So my plan for the end is to have 1 config file for the users to edit and all that needs to be inputted is authors info like email and name, category (for the menu entry), URL, description and long description.
[20:33] <fagan> so that packaging and building is as easy as possable
[20:34] <fagan> So all of that is in the python template now but you have to edit the authors file, desktop.in and the setup.py file. The way im thinking is to do it in 1 file and make it more invisible how the magic is done.
[20:34] <fagan> so the python template is a little bit hard if you didnt see any tutorials on how to do it
[20:35] <fagan> My idea is to have that all in one text file. How its displayed is up for discussion and ill talk about that at the UDS probably. (ill be participating remotely).
[20:35] <fagan> I also plan on having packaging and building done properly for 11.04 which is going to take most of the cycle and involves a lot of things.
[20:36] <fagan> 1. Detecting depends so the user doesn't have to do the --pkg thing or have to use makefiles and all of that crap.
[20:36] <fagan> (this is a big problem with vala in terms of new developers)
[20:36] <fagan> 2. a great build system (this is going to be done with buildj hopefully) and a standard project directory layout so we just have to scan the dirs for files to detect what to add to the build.
[20:37] <fagan> 3. packaging stuff but since this really relies on 1 and 2 its going to be done last. Plus im not a motu or do any packaging in general so the tools are quite new for me so it will take a little bit of fiddling. (if anyone wants to help with this ill buy you a drink sometime for your trouble)
[20:37] <fagan> thats a lot of hard work for 1 cycle :)
[20:38] <fagan> ohter than that and some other boring stuff ill just be updating the template a little
[20:38] <fagan> to make it a little bit more like the python template
[20:39] <fagan> which is awesome
[20:39] <fagan> and I might give desktopcouch a try in vala
[20:39] <fagan> if the binding is there
[20:39] <fagan> ok any more questions?
[20:39] <fagan> I have just a little bit more
[20:40] <fagan> ok so no questions?
[20:40] <fagan> moving on then
[20:40] <fagan> oooh
[20:40] <fagan> someone has one
[20:41] <fagan> beardygnome > can we use pdb for debugging (i see there's a session on this later this week)
[20:41] <fagan> well debugging is built into the valac compiler
[20:41] <fagan> and it does give out some awesome info
[20:42] <fagan> so there is no reason to use phb
[20:42] <fagan> anyhow
[20:42] <fagan> so im starting to run out of things to talk about so ill just go into the "why use Vala over python?" question
[20:43] <fagan> Well the simplest answer is that Vala is a lot lot faster than python and its very well integrated into the gnome platform.
[20:43] <fagan> The other answer is that its the perfect language to got to if you started programming in Java or C# (if you don't want to use mono) oh and did I say its faster than both of those languages too.
[20:44] <ClassBot> beardygnome asked: i have one
[20:44] <fagan> lol
[20:45] <fagan> Didnt mean to paste that one :/
[20:45] <fagan> QUESTION : there is no intermediate language in vala right ?
[20:45] <fagan> I dont have a clue what the question is :)
[20:45] <fagan> If anyone is wondering how its faster its because Vala is more or less a big wrapper over C.
[20:46] <fagan> Valac the Vala complier converts your code to to C then uses the C complier to make the binary. C is one of the oldest modern languages (its about 40 years old now) and is by a good stretch the fastest.
[20:46] <ClassBot> jthompson asked: Did you mention Vala run in Windows?  Does it use GTK for the GUI layer?
[20:46] <fagan> I kinda glossed over the vala on windows thing
[20:46] <fagan> but yeah it does work on windows
[20:46] <fagan> and it does use GTK
[20:46] <fagan> you can get an installer for both im pretty sure on windows
[20:47] <fagan> but you do have to change your / to \
[20:47] <fagan> so the directories work
[20:47] <fagan> since windows is backwards
[20:47] <ClassBot> augdawg asked: is there a valac for windows?
[20:47] <fagan> yes
[20:47] <fagan> :)
[20:48] <fagan> http://live.gnome.org/Vala/ValaOnWindows
[20:48] <fagan> thanks for the link wutzara
[20:48] <fagan> thoughts on quickly work-flow, e.g. multiple terminals <-> new developers?
[20:48] <fagan> Well you can use quickly with a single terminal
[20:49] <fagan> but I have a small bug at the moment where it only allows one command at a time
[20:49] <fagan> so its a little bit bad
[20:49] <fagan> any more questions
[20:49] <fagan> I flew through the whole session
[20:49] <fagan> so im sorry if I was a little fast
[20:50] <ClassBot> w1ngnut asked: Don't know if was asked. Is there any IDE with code-completion for vala?
[20:50] <fagan> Yep geany is nice for that
[20:50] <fagan> and valide (I think thats the name)
[20:51] <fagan> valide is a plugin for gedit and it has autocompletion just like netbeans or visual studio
[20:51] <fagan> so its very nice
[20:51] <fagan> http://code.google.com/p/vtg/
[20:51] <fagan> http://www.valaide.org/
[20:51] <fagan> thanks chat for the links :)
[20:52] <ClassBot> augdawg asked: what do yu use?
[20:52] <fagan> well I use gedit
[20:52] <fagan> but I turn on the line numbering and i use different colours because the default ones are ugly
[20:52] <fagan> oh and I should give the tools page too http://live.gnome.org/Vala/Tools
[20:53] <ClassBot> jiga asked: I was previously using QT with c++, and I'm wondering, what are the benefits of quickly-vala over QT
[20:53] <fagan> great question
[20:53] <fagan> Well I dont have a clue about QT really or the state of its bindings with vala
[20:53] <fagan> but id say there are
[20:53] <fagan> so you wouldnt really need to use one or the other
[20:54] <fagan> well im almost out of time but keep the questions coming if you have them
[20:54] <fagan> :)
[20:55] <ClassBot> wutzara asked: is there autotools support in quickly-vala
[20:56] <fagan> Well I hate autotools
[20:56] <fagan> So im working with buildj for 11.04 hopefully
[20:56] <fagan> so we can have an easier way to build programs
[20:56] <ClassBot> augdawg asked: does vala have alot of module type thingies?
[20:57] <fagan> Well you have a lot of classes and bindings and stuff but all of them are similar to that in python
[20:57] <fagan> so its not any more than any other language
[20:57] <ClassBot> w1ngnut asked: Vala seems a good alternative for one coming from C# or java but the namespaces/methods inherit more from glib than the java-c# pattern. Do you have any tip for someone with experience on java-c# wanting to migrate/start learning vala?
[20:57] <fagan> Well the easiest way is to dive in
[20:58] <fagan> the tutorials are on the vala website
[20:58] <fagan> and since its very similar to C# and java its easy to switch to
[20:58] <fagan> the only major difference is instead of swing in java its GTK
[20:58] <fagan> but thats awesome
[20:59] <fagan> well since the syntax is very similar its fairly easy to switch
[20:59] <fagan> Ok so thanks for listening and if you have any problems with my template go to #quickly on freenode or if you want help with Vala itself go to #vala on gimpnet. Of course patches are welcome and I hope you guys like it.
[20:59] <fagan> Anyhow im out of time
[20:59] <fagan> :)
[20:59] <fagan> thanks everyone :P
[23:51] <monkey_gorilla> what are you talking about now


[03:05] <MephistoM> check out my latest edubuntu installation : http://meeting.knet.ca/mp19/mod/book/view.php?id=3303
[03:08] <stgraber> MephistoM: cool!
[03:10] <MephistoM> right on, thanks stgraber
[20:41] <highvoltage> I just looked at the state of sugar in natty, imho it won't be all that worth while for inclusion for this release
[21:05] <mhall119> highvoltage: xdg-launcher is up to 0.0.4 now, auto-refreshing on menu changes or app install/remove
[21:05] <mhall119> thanks to daker
[21:06] <daker> i am working on autohiding the launcher
[21:06] <mhall119> +1
[21:06] <mhall119> \o/
[21:07] <mhall119> I really appreciate the contributions daker
[21:07] <mhall119> it's gonna make Qimo really rock
[21:07] <daker> woo :)
[21:07] <mhall119> now I need to get started working on my desktop sessions
[21:07] <mhall119> highvoltage: any good references for building ISOs for seed files?
[21:09] <highvoltage> mhall119: jriddell is going through the NEW queue tomorrow, the package should go into universe then. sbalneav has been quiet recently, we just need a +1 from him then we can give you edubuntu-dev status to directly upload that (well, once we have it in a seed, which shouldn't be a biggie)
[21:10] <highvoltage> (nice that it's autorefreshing now)
[21:10] <mhall119> yeah, I was playing around with the auto-refreshing all morning
[21:12] <highvoltage> mhall119: on the seed files, it depends. there are different docs on the ubuntu wiki explaining it, if you want qimo to become an official ubuntu derivative and build it using canonical infrastructure, then it might be worth while doing it, otherwise it's probably not worth while if it's for qimo
[21:13] <mhall119> highvoltage: at this point Qimo's staying outside of canonical
[21:13] <mhall119> but I thought maybe there were build tools that would generate an ISO from the seeds, that I can run locally
[21:13] <mhall119> I'm okay using my own infrastructure, I just want a way to automate the building
[21:15] <highvoltage> mhall119: I have a script that can do that, I've used it for a long time now, but have been meaning to release it at some point. I guess I'll work on that this Friday then, if you'd like to test it let me know
[21:15] <mhall119> highvoltage: that's be great, thanks
[21:16] <mhall119> I want to move away from "strip down xubuntu and install qimo packages" and towards "start with a core ubuntu and add qimo packages and dependencies"
[21:16] <mhall119> hopefully it'll buy me a little more room on the CD image
[21:18] <highvoltage> mhall119: my script builds the disc from scratch, using debootstrap to set up a minimal ubuntu environment, then it installs metapackages as defined in a configuration file that installs the rest of the system. that would allow you to automate building qimo completely, and with not much effort
[21:19] <mhall119> awesome
[21:19] <highvoltage> yep, you could simply not include stuff you don't need in your meta-packages
[21:19] <mhall119> let me know when it's somewhere I can grab it
[21:19] <mhall119> I need to see how much of xubuntu I can get rid of
[21:19] <highvoltage> ok, poke me again on Friday, I probably won't forget, but just in case :)
[21:20] <mhall119> ok
[21:20] <mhall119> in the mean time I'll get started updating my existing packages and making new ones
[21:43] <Morsey> hello?
[21:43] <alkisg> Hi
[21:45] <Morsey> How you doing?  I've stumbled across edubuntu and have a couple of questions - reckon you could answer them? :)
[21:45] <alkisg> !question
[21:47] <Morsey> Is it possible to run edubuntu in a livecd (not DVD) manner?  I have lots of old laptops at school which can't cope with the current install of XP and I am not permitted to change the harddrive...
[21:48] <alkisg> How much ram do they have?
[21:49] <Morsey> 512MB
[21:49] <alkisg> Do you have something to use as a server? E.g. your own laptop?
[21:50] <Morsey> That's a really good point - yes I do...
[21:51] <alkisg> You have a couple of options, I think the best one is to make your laptop a roaming LTSP server
[21:51] <alkisg> This way the clients will boot as fat clients and have their accounts, data etc all on your laptop. They'll be faster than your current XP installation
[21:52] <alkisg> Another way is to make them netboot the edubuntu dvd from your laptop. This is the easiest / quickest way, you just boot the live dvd on your own laptop and run a script: https://wiki.ubuntu.com/LiveCDNetboot#line-77
[21:52] <alkisg> But it'll be much slower and the students won't be able to save stuff.
[21:53] <Morsey> I like the idea of the LTSP server - thanks, I'll give it a go.  My only concern is that of bandwidth - do I really need the 1gb/15 clients as recommended?
[21:54] <alkisg> It's 10 times faster, sure. But for fat clients it's a little more tolerable than for thin clients
[21:54] <alkisg> E.g. for thin clients with 100 mbps you can open openoffice in 2 secs, but when you use it, the screen updates will be slow
[21:54] <Morsey> ahh - ok.
[21:55] <alkisg> For fat clients with 100mbps, it might take 15 secs to open, but screen updates will be instant
[21:56] <Morsey> will the individual clients network connections be routed through my laptop then? Or would i be able to configure them to connect through their own wireless cards? I'm thinking about tracking who does what on the internet...
[21:57] <alkisg> It's difficult to netboot wireless clients
[21:57] <alkisg> Can't they use wired connections?
[21:58] <Morsey> they can use wired connections to me - but I would prefer them to use their original wireless cards for internet access. That way they current montoring systems will still work. (not my systems, all based on MAC addresses.....)
[21:58] <alkisg> They can access the internet through their own ethernet (wired) cards without going through your laptop, if that's what you want
[21:58] <alkisg> You could also setup wireless connections but it would be tricky
[21:59] <Morsey> ok - I'll worry about getting a trial up and running first. thanks for your help!
[21:59] <alkisg> You're welcome


[00:14] <vorlon> ~35 minutes right now for a britney notest run fwiw
[01:06] <vorlon> and an unreasonable amount of time to sync this to the frontend, which warrants some investigation
[01:08] <vorlon> looks like a caching problem with the IS proxies :/
[01:09] <vorlon> hmm no it isn't
[01:09] <vorlon> our webserver straight up doesn't have the right version of this file synced
[01:20] <vorlon> ... and is repeatedly failing to sync it?
[01:52] <vorlon> juliank: well, you did a no-change rebuild of readline against readline
[01:53] <vorlon> ah and disabling the implicit dependencies policy was enough that glib2.0 now just gets through on a notest run(?)
[01:54] <vorlon> which implies it's *only* tests blocking things now
[01:57] <vorlon> oop no I read it wrong
[02:13] <vorlon> ginggs, doko: ok so britney wants to migrate python3-stdlib-extensions, python3-defaults, python3.12, and python3.11 all at the same time; and this breaks python3.11 because it depends on python3.11-distutils which is a virtual package that goes away
[02:14] <vorlon> ginggs, doko: and python3-stdlib-extensions can't be held back because it's needed for updating the dependency on gdbm...
[02:14] <vorlon> I guess I could delete python3.11-{full,venv} on armhf :P
[02:16] <vorlon> blktrace getting sassy on ppc64el with -O3 + format-overflow
[02:20] <vorlon> ironically the package not being included in the glib2.0 notest autohint is ceph, which is an actual candidate with tests
[02:20] <vorlon> wait no update_excuses is lying again and it's not a candidate
[02:20] <vorlon> because google-perftools/armhf
[02:21] <vorlon> ^ synced fix from Debian
[02:21] <vorlon> oath-toolkit also needs sorting
[02:22] <vorlon> because it depends on libpam0t64 which has been reverted
[02:22] <vorlon> only package to have that problem; fixing now
[02:22] <vorlon> right, letting those cook, afk for a bit
[05:26] -queuebot:#ubuntu-release- New binary: ukwm [amd64] (noble-proposed/universe) [1.2.1-0ubuntu4] (ubuntukylin)
[05:28] -queuebot:#ubuntu-release- New binary: ukwm [ppc64el] (noble-proposed/universe) [1.2.1-0ubuntu4] (ubuntukylin)
[05:28] -queuebot:#ubuntu-release- New binary: ukwm [s390x] (noble-proposed/universe) [1.2.1-0ubuntu4] (ubuntukylin)
[05:29] -queuebot:#ubuntu-release- New binary: ukwm [arm64] (noble-proposed/universe) [1.2.1-0ubuntu4] (ubuntukylin)
[05:48] <doko> vorlon: yes, deleting python3.11-{full,venv} sounds fine for the migration. but I'm curious why it wants migrate python3.11 at all
[05:49] <vorlon> doko: it was rebuilt for the new gdbm package name
[05:49] <vorlon> hadn't been dropped yet from the release
[05:50] <vorlon> (and still can't be from what I see)
[06:17] <vorlon> webkit2gtk out of date on riscv64 because of cmake any/all skew at time of last build; given back now
[06:17] <vorlon> aaaand that takes 3 days to build
[06:17] <vorlon> so
[06:17] <vorlon> calling it a night
[06:57] -queuebot:#ubuntu-release- New binary: ukwm [riscv64] (noble-proposed/universe) [1.2.1-0ubuntu4] (ubuntukylin)
[07:16] -queuebot:#ubuntu-release- New binary: ukwm [amd64] (noble-proposed/universe) [1.2.1-0ubuntu5] (ubuntukylin)
[07:17] -queuebot:#ubuntu-release- New binary: ukwm [s390x] (noble-proposed/universe) [1.2.1-0ubuntu5] (ubuntukylin)
[07:18] -queuebot:#ubuntu-release- New binary: ukwm [ppc64el] (noble-proposed/universe) [1.2.1-0ubuntu5] (ubuntukylin)
[07:19] -queuebot:#ubuntu-release- New binary: ukwm [arm64] (noble-proposed/universe) [1.2.1-0ubuntu5] (ubuntukylin)
[07:26] -queuebot:#ubuntu-release- New binary: ukwm [armhf] (noble-proposed/universe) [1.2.1-0ubuntu5] (ubuntukylin)
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [amd64] (noble-proposed) [1.2.1-0ubuntu4]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [ppc64el] (noble-proposed) [1.2.1-0ubuntu4]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [s390x] (noble-proposed) [1.2.1-0ubuntu4]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [arm64] (noble-proposed) [1.2.1-0ubuntu4]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [riscv64] (noble-proposed) [1.2.1-0ubuntu4]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [amd64] (noble-proposed) [1.2.1-0ubuntu5]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [armhf] (noble-proposed) [1.2.1-0ubuntu5]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [s390x] (noble-proposed) [1.2.1-0ubuntu5]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [arm64] (noble-proposed) [1.2.1-0ubuntu5]
[07:29] -queuebot:#ubuntu-release- New: accepted ukwm [ppc64el] (noble-proposed) [1.2.1-0ubuntu5]
[07:45] <LocutusOfBorg> vorlon, ping for libfm bootstrap
[07:45] <LocutusOfBorg> :)
[08:37] <doko> vorlon: I don't think this is the correct behavior:
[08:37] <doko> $ DEB_BUILD_MAINT_OPTIONS=qa=-bug-implicit-func dpkg-buildflags | grep ^CFLAGS=
[08:37] <doko> CFLAGS=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/data/recutils-1.9=. -fstack-protector-strong -Wformat -Werror=format-security -fno-stack-clash-protection -fdebug-prefix-map=/data/recutils-1.9=/usr/src/recutils-1.9-3build2
[08:37] <doko> even on armhf
[08:40] <LocutusOfBorg> juliank, w.r.t. your obs rebuild -> debian/rules:	echo "libobs 0 libobs0 (= $(DEB_VERSION))" > debian/shlibs.local
[08:43] <juliank> vorlon: well readline needs an upload,  one of its binaries (rlfe) has a hardcoded dependency on the old name. That's why those happen;)
[08:43] <juliank> But yeah a real change not a no-change
[08:46] <LocutusOfBorg> juliank, fixed!
[08:52] <juliank> ack
[08:52] <juliank> Fixing readline both in Debian and Ubuntu
[09:03] <juliank> doko: hmm it's not clear what happened, but the readline upload somehow ended up with the entire changelog in .changes
[09:04] <juliank> doko: Despite only running dpkg-buildpackage -S in an unstable container
[09:05] <juliank> doko: Oh you did a parallel upload
[09:05] <juliank> very good
[09:06] <juliank> It's likely most in https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/global-ben.rebuild-for.txt now need manual uploads
[09:19] <juliank> doko: https://bugs.launchpad.net/ubuntu/+source/yrmcds/+bug/2058803
[09:19] -ubottu:#ubuntu-release- Launchpad bug 2058803 in yrmcds (Ubuntu) "RM: src:yrmcds; FTBFS, leaf" [Undecided, New]
[09:22] <juliank> Did jpeg-xl, scram, swi-prolog, ui-gxmlcpp rebuilds/fixes
[09:22] <juliank> With yrmcds done this leaves anything else in the list as needing manual fixes
[09:22] <juliank> or removing from pocket
[09:22] <juliank> :D
[09:37] -queuebot:#ubuntu-release- New binary: ubuntukylin-wallpapers [amd64] (noble-proposed/universe) [24.04] (ubuntukylin)
[09:49] <doko> vorlon: https://paste.ubuntu.com/p/dvJXRRSKq5/ tested on armhf and amd64
[10:03] <doko> juliank: removed
[10:03] <juliank> doko: ta
[10:13] <doko> kanashiro: could you have a look at https://launchpad.net/ubuntu/+source/glyr/1.0.10-2build2/+build/27953034 ?
[10:14] <juliank> doko: armhf queues are almost empty, we probably should schedule some more retries for something; I think I still have permissions and could just retry *everything* in huge
[10:14] <juliank> This will leave space for anything more urgent to be systematically retried
[10:15] <doko> sure, just do that
[10:15] <doko> jbicha: gst-python1.0 tests fail during the build
[10:21] <juliank> oh I don't think I have access after all
[10:21] <juliank> :D
[10:22] <juliank> I can queue it normally
[10:29] <juliank> better then ending up with empty queues
[10:32] <juliank> Our main problem now are the amd64 and i386 queues as they don#t go downward at all
[10:35] <juliank> s390x is getting down, I'll probably schedule about 500 reruns there
[11:02] <ricotz> hello, any objections to upload a new libreoffice which will drop oython-distutils
[11:02] <ricotz> doko, hi :) ^
[11:05] <juliank> ricotz: current upload is fully broken in -proposed, so go ahead
[11:06] <ricotz> juliank, alright, a PPA test build went well
[11:13] <juliank> indiscriminate retries of all armhf and s390x test failures scheduled. and with that I sign off again :D
[11:25] <ricotz> juliank, https://launchpad.net/ubuntu/+source/linux/6.8.0-20.20build1
[11:33] <jbicha> doko: bug 2057836
[11:33] -ubottu:#ubuntu-release- Bug 2057836 in pygobject (Ubuntu) "gst-python1.0 fails to build: test failures" [High, Triaged] https://launchpad.net/bugs/2057836
[12:06] <vorlon> doko: DEB_BUILD_MAINT_OPTIONS=qa=-bug-implicit-func> I don't remember what the armhf behavior was expected to be here, I did a straight revert; but in any case I'm not comfortable with disabling implicit-function-declaration on armhf, there's high risk of misbuild and nobody is going to actually audit the code beforehand to make sure it's not referencing time_t functions - if you have time to do
[12:06] <vorlon> that, you have time to just declare the prototypes
[12:18] <doko> well, I checked it on Debian armhf, you can disable it there
[12:55] <juliank> ricotz: probably needs a real upload by the kernel team
[12:57] -queuebot:#ubuntu-release- New binary: u-boot-s32 [amd64] (noble-proposed/universe) [2022.04-bsp37.0-0ubuntu1] (no packageset)
[12:58] <juliank> ubuntu-archive: please revert linux to 6.8.0-20.20
[12:58] <kanashiro> doko re glyr FTBFS: I am not with my laptop right now, but the Dir.exists? method was renamed to Dir.exist? , so we very likely need to path the code to rename the calls to that method. If this is not fixed until I get my laptop I can fix it later
[12:58] <kanashiro> s/path/patch
[12:58] -queuebot:#ubuntu-release- New binary: u-boot-s32 [ppc64el] (noble-proposed/universe) [2022.04-bsp37.0-0ubuntu1] (no packageset)
[12:59] <juliank> ubuntu-archive, ricotz: Not sure what's going on with linux and my rebuild script but it picked up wrong version: # Rebuilding linux due to linux-tools-6.5.0-9 6.5.0-9.9 depending on {'libdw1', 'libssl3', 'libelf1'}
[12:59] -queuebot:#ubuntu-release- New binary: u-boot-s32 [s390x] (noble-proposed/universe) [2022.04-bsp37.0-0ubuntu1] (no packageset)
[13:00] <juliank> I see, I guess the 6.5.0-9 is NBS
[13:04] -queuebot:#ubuntu-release- New binary: u-boot-s32 [armhf] (noble-proposed/universe) [2022.04-bsp37.0-0ubuntu1] (no packageset)
[13:05] -queuebot:#ubuntu-release- New binary: u-boot-s32 [arm64] (noble-proposed/universe) [2022.04-bsp37.0-0ubuntu1] (no packageset)
[13:05] <juliank> Ah yeesh, it *moved* source packages and we have the wrong one
[13:06] <juliank> we have linux-headers-6.5.0-9-generic built from src:linux
[13:06] <juliank> and linux-headers-6.5.0-9-generic is now in src:linux-riscv
[13:06] <ricotz> juliank, I think the packaging is a bit special and the version schema matters a lot
[13:08] <juliank> ah of course, linux-headers-6.5.0-9-generic from linux-riscv is only on riscv
[13:13] <juliank> OK, fixed
[13:18] -queuebot:#ubuntu-release- New binary: u-boot-s32 [riscv64] (noble-proposed/universe) [2022.04-bsp37.0-0ubuntu1] (no packageset)
[13:18] <juliank> The script now ignores binary names neither in release or proposed
[13:18] <juliank> and if it finds it in proposed, it checks that the binary it evaluates is the latest
[13:18] <juliank> and otherwise, it checks it is built from the version of the source package
[13:18] <juliank> aka. it checks proposed binaries built from proposed source, and release binaries from release source
[13:19] <juliank> source version, that is :)
[13:19] <juliank> Sorry about that
[13:20] <juliank> the remaining ones in https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/global-ben.rebuild-for.txt now need manual action due to hardcoded dependencies
[13:21] <juliank> e.g. > rebuild-for "libcurl4t64" mariadb
[13:21] <juliank> it has Depends: libcurl4, twice
[13:21] <juliank> I'm removing those and see if it builds
[13:35] <doko> jbicha, vorlon: do we have any dependencies on unity? or can we remove it? googletest now wants -std=c++14, while unity wants -std=c++11 and is not ready for c++14. now disabling the testing to avoid googletest is one thing, maybe packaging an older googletest as well.
[13:37] <doko> juliank: how do I read that list? e.g. sdpa doesn't have any hard-coded deps
[13:46] <jbicha> doko: Ubuntu Unity is an official Ubuntu desktop flavor
[13:52] <juliank> doko: Oh so that one has  libmumps-seq-${mumps-seq:Version} twice
[13:52] <juliank> # Rebuilding  due to sdpa 7.3.16+dfsg-1build3 depending on {'libmumps-seq-5.6'}
[13:52] <juliank> # Rebuilding sdpa due to sdpam 7.3.16+dfsg-1build3 depending on {'libmumps-seq-5.6'}
[13:52] <juliank> doko: presumably that is set to 5.6 as we see the log saying this ^ https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/global-ben.log
[13:53] <juliank> it does LIBMUMPS_VER := $(shell dpkg --status libmumps-seq-dev | awk '/^Version:/ {print $$2}' |cut -f 1 -d "-" | cut -d . -f 1-2)
[13:53] <juliank> so yeah it always picks up the upstream version
[13:54] <juliank> so we need to append t64 to the variable or do libmumps-seq-${mumps-seq:Version}t64
[13:55] <juliank> doko: i.e. all of them I or somebody else did issue no-change rebuilds for already for one of the reasons listed in the "" (my rebuild-for script checks dpkg-parsechangelog for any of them and then skips build)
[13:57] <juliank> Literally one can download https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/rebuild-for as well
[13:57] <juliank> Which is I guess originally xnox's script but with some tweaks :)
[13:58] <juliank> It's syntax is literally rebuild-for <reason> <package> [<release>]
[14:00] <juliank> Other thing to look at is https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/global-ben.txt which shows full transitions, including missing builds on armhf in []
[14:01] <juliank> it's syntax is
[14:01] <juliank> libarchive13 (rebuild-for libarchive13t64) Reverse-Depends: python-libarchive-c [glom] [lnav] [pacman-package-manager]
[14:01] <juliank> i.e. libarchive13 to libarchive13t64 transition, python-libarchive-c needs a rebuild (possibly manual), and glom, lnav, pacman-package-manager are also in need of a rebuild but there is one failing/not-yet-built in proposed
[14:03] <juliank> That's like the full list of build failures that needs resolving
[14:03] <juliank> or well full list of stuff left to build
[14:03] <doko> no, I was looking for the hard-coded libraries
[14:04] <juliank> Yes you greped from libmumps-seq-5.6 and hence didn't see libmumps-seq-${mumps-seq:Version}
[14:04] <juliank> * grep-ed for
[14:05] <doko> that's my take on fixing those: http://launchpadlibrarian.net/720820884/python-netsnmpagent_0.6.0-2build1_0.6.0-2ubuntu1.diff.gz
[14:06] <juliank> lgtm
[14:07] <juliank> I admit I'm lazier
[14:07] <juliank> I just delete them where applicable or append t64
[14:08] <juliank> to see if you can delete them you can consult https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/proposed-binaries.txt with the binary package name
[14:08] <juliank>   * mariadb-plugin-s3 depends on conflicting packages: libcurl4t64=8.5.0-2ubuntu7 vs libcurl4=8.5.0-2ubuntu2
[14:08] <juliank>     - chain 1: libcurl4t64:armhf (>= 7.16.2)
[14:08] <juliank>     - chain 2: libcurl4:armhf
[14:09] <juliank> Something like that in the first section will show you directly conflicting dependencies in the same binary
[14:09] <juliank> That is, shlibs picked up the dep too
[14:12] <juliank> hack smarter not harder :)
[14:12] <juliank> ooh amd64 test queue is making good progress
[14:13] <juliank> feels like some tests got dropped though :)
[14:13] <juliank> 10.9k to 6.2k in 15 mins lol
[14:16] <juliank> doko: if you have a minute, please remove src:linux 6.8.0-20.20build1 from proposed and copy  6.8.0-20.20 back in again
[14:16] <juliank> that was a mistaken rebuild
[14:34] <doko> juliank: Deleted 1 minute ago by Matthias Klose
[14:34] <doko> remove linux, uploader wants to stay in Foundations team
[14:52] <kanashiro> doko FYI glyr fix uploaded to noble
[14:53] <juliank> doko: lol
[15:43] <tsimonq2> Ah cool, excuses is down to 39 MB from 50 MB. :P
[15:44]  * tsimonq2 breaks out the Python interpreter and the YAML copy
[16:01] <tsimonq2> The Plasma bugfix release, which Kubuntu must have for the Noble release, is blocked on Qt which is waiting on autopkgtests, but Qt is blocked by glib2.0 and gtk+3.0 (wat), in addition to cups.
[16:03] <doko> tsimonq2: can you coordinate with vorlon about uploading that? just depending on how long that takes to build everywhere
[16:03] <tsimonq2> doko: It's been in proposed for a week or two now.
[16:04] <doko> ahh, so no new uploads
[16:04] <tsimonq2> Correct.
[16:05] <tsimonq2> Scarlett has some more items she'd like to upload as part of the Plasma stack, but that's waiting on the DMB to process the backlog of requests.
[16:06] <tsimonq2> An example package in the Plasma stack is plasma-discover, which Lubuntu also seeds.
[16:15] <RikMills> tsimonq2: qt5-gtk-platformtheme from qtbase depends on libgtk-3-0t64
[16:16] <tsimonq2> Okay, that makes a little more sense.
[16:26] <doko> juliank: rebuild-for "libmission-control-plugins0t64" telepathy-mission-control-5 ???
[16:27] <doko> I fixed the docdir symlink, but can't find anything else
[16:28] <juliank> doko: log says Rebuilding telepathy-mission-control-5 due to libmission-control-plugins-dev 1:5.16.5-2.1ubuntu4 depending on {'libmission-control-plugins0'}
[16:29] <juliank> Let's see
[16:30] <juliank> I'm on a phone at a train station and launchpad is hanging
[16:31] <doko> yes, people are already working on it
[16:32] <juliank> doko: I think the doc dir Link causes the depends
[16:32] <juliank> So you should have the full fix
[17:02] <vorlon> LocutusOfBorg: I did double-check that libfm built in the bootstrap archive; I'm not sure why the armhf binaries didn't get copied out; re-copying now
[17:10] <vorlon> LocutusOfBorg: well, I got a launchpad oops, that's fn
[17:10] <vorlon> fun
[17:10] <vorlon> trying again; if it's reproducible I guess I'll re-bootstrap
[17:11] <doko> juliank: samba is just an Enhances field ...
[17:13] <juliank> Ooh log is empty now
[17:13] <juliank> I did a no-change rebuild yesterday
[17:14] <vorlon> LocutusOfBorg: yeah, launchpad oops reproducible, doing another bootstrap
[17:24] -queuebot:#ubuntu-release- New binary: libreoffice [ppc64el] (noble-proposed/main) [4:24.2.2~rc2-0ubuntu1] (ubuntu-desktop)
[17:24] <vorlon> NCU of gst-plugins-good1.0, needed on at least riscv64; should take care of a large chunk of the uninstallables on https://ubuntu-archive-team.ubuntu.com/proposed-migration/update_output_notest.txt
[17:25] <juliank> ok doko can you tell me what line you saw for samba?
[17:27] <vorlon> lovely, nemo depends: libcinnamon-desktop4, libcinnamon-desktop4t64
[17:27] <juliank> ok fixed global-ben
[17:28] <juliank> it did not run anymore
[17:28] <vorlon> so that should be cinnamon and ubuntu-desktop fixed in the next notest run
[17:28] <juliank> doko: Ah I see it, yeah somehow Enhances leaked through / came back in
[17:28] <juliank> pretty certain I had that fixed yesterday
[17:28] <vorlon> back to looking at test failures on armhf now that we've done some reruns
[17:32] <juliank> vorlon: Not sure what you scheduled yesterday, I just reran everything today (again?) because queues were empty, but it's 3/4th done again :D
[17:32] <juliank> well s390x and armhf I did
[17:32] <vorlon> I only rescheduled on armhf
[17:32] <juliank> But only BADPKG or all?
[17:33] <juliank> I'll go reschedule ppc64el I think now, queues for that are empty
[17:33] <vorlon> ah globally I only rescheduled BADPKG
[17:33] <vorlon> for glib2.0 I retried all of them
[17:33] <juliank> well now we have all for everything (well 589 left I suppose)
[17:34] <vorlon> hmm colord was previously a segfault now it's badpkg
[17:35] <vorlon> eh. Internal Server Error trying to upload to launchpad
[17:35] <juliank> launchpad 500ed a bit today
[17:35] -ubottu:#ubuntu-release- Launchpad bug 500 in kdegraphics (Ubuntu) "Package description does not match content/dependencies" [Medium, Fix Released] https://launchpad.net/bugs/500
[17:35] <juliank> ppc64el retries being scheduled now
[17:36] <juliank> only 300
[17:37] <juliank> I added a progress bar by piping curl output lines to pv so it loks nice and gives me an eta :)
[17:38] <juliank> s390x and ppc64el retries also using all-proposed fwiw
[17:38] <vorlon> ugh how is xdg-desktop-portal-gnome not installable
[17:39] <juliank>   * xdg-desktop-portal-gnome depends on conflicting packages: libglib2.0-0t64=2.79.3-3ubuntu5 vs libglib2.0-0=2.79.2-1~ubuntu1
[17:39] <juliank>     - chain 1: libglib2.0-0t64:armhf (>= 2.79.0)
[17:39] <juliank>     - chain 2: xdg-desktop-portal:armhf (>= 1.17.1) -> libglib2.0-0:armhf (>= 2.70.0)
[17:39] <juliank> vorlon:
[17:39] <vorlon> yeah, *how* :)
[17:39] <vorlon> depwait :P
[17:39] <vorlon> retrying
[17:40] <vorlon> and retrying everything that's depwait
[17:40] <juliank> but hmm
[17:40] <juliank> yes
[17:41] <juliank> good idea
[17:41] <doko> vorlon, juliank: https://magenta.jak-linux.org/ubuntu-archive/distcheck/noble.armhf/global-ben.rebuild-for.txt uploaded fixes for python-fusepy and below. now afk for a while
[17:42] <vorlon> doko: cheers
[17:42] <vorlon> I'm going to get through the list of glib2.0 armhf test regressions, then I'm also afk for a bit
[17:43] <juliank> I had a couple of 500 errros when uploading, can you retry all upload failures easily, vorlon?
[17:43] <vorlon> juliank: not "easily". I only had 2 here
[17:43] <juliank> ok
[17:43] <vorlon> correction, 3
[17:43] <vorlon> and the important one, gst-plugins-good, is reuploaded
[17:44] <juliank> retrying by hand
[17:45] <juliank> I had courier, fungoloids, libwlocate, and emacs-pdf-tools
[17:45] <juliank> boooring
[17:46] <vorlon> cpdb-backend-cups ftbfs with a test failure, blocks cpdb-libs autopkgtest due to uninstallability https://launchpad.net/ubuntu/+source/cpdb-backend-cups/2.0~b5-0ubuntu5/+build/27953421
[17:47] <doko> still getting 50% rejects on uploads
[17:50] <vorlon> and cups-browsed still segfaults before LD_DEBUG=all gives any output
[17:50] <vorlon> trying a rebuild just in case
[17:52] <vorlon> was someone sorting out sssd yesterday? gdm3 autopkgtest currently still fails on installing it
[17:54] <vorlon> ests: build-lib
[17:54] <vorlon> Depends: libgenometools0-dev, libgenometools0, build-essential
[17:54] <vorlon> PEOPLE
[17:54] <vorlon> DO YOU KNOW WHAT DEPENDENCIES ARE
[17:55] <vorlon> THIS IS NOT SunOS
[17:58] <vorlon> oops almost spent time fixing gimp-plugin-registry instead of removing it, out of reflex
[18:00] <juliank> It's easier for me to spend a minute fixing and uploading it then to analyse reverse dependencies and ask for removal :)
[18:01] <vorlon> gimp-plugin-registry has implicit function decls, that's more than a minute
[18:01] <vorlon> also for some of these it might be ok to fix it but ALSO ask for removal
[18:01] <juliank> heh
[18:03] <vorlon> wow, sure enough, cups-browsed works on a NCU
[18:03] <vorlon> cosmic rays are real
[18:04] <vorlon> ok, that gets me as far as gtk4 which I think I heard mwhudson ranting about the other day; I'm going to stop there for now, afk for food
[18:05] <vorlon> (and removing gtk4 revdeps would be a bit much)
[18:24] <juliank> working on anki
[18:25] <juliank> uploaded anki
[18:25] <juliank> working on appmenu-gtk-module
[18:27] <juliank> working on aqemu
[18:28] <juliank> oh doko said #ubuntu-devel not #ubuntu-release
[18:30] <juliank> "Add explicit dependency on libqt5dbus5"
[18:30] <juliank> no dbus in the code at all
[18:34] <juliank> working on atomes
[18:38] <juliank> caribou
[18:39] <vorlon> /usr/include/cglm/struct/affine.h:135:23: note: expected ‘vec3s’ but argument is of type ‘mat4s’
[18:39] <vorlon> yeah not my problem
[19:08] -queuebot:#ubuntu-release- New binary: libreoffice [s390x] (noble-proposed/main) [4:24.2.2~rc2-0ubuntu1] (ubuntu-desktop)
[19:19] <jbicha> I'd love to have gimp-plugin-registry removed because it is one of a long list of things that needs to be handled to switch to gimp3 & would be nice to switch later this year
[19:40] -queuebot:#ubuntu-release- New binary: libreoffice [arm64] (noble-proposed/main) [4:24.2.2~rc2-0ubuntu1] (ubuntu-desktop)
[20:11] <doko> I mean #u-r, but hey, #u-r is also good
[20:26] <vorlon> jbicha: well I've only removed it on armhf... :)
[20:26] <vorlon> fwiw it would make sense for people to check for packages that are missing builds on riscv64
[20:27] <vorlon> these take longest the build, it's the second most likely arch to have build failures, and removing armhf packages isn't going to fix these
[20:37] -queuebot:#ubuntu-release- New binary: libreoffice [amd64] (noble-proposed/main) [4:24.2.2~rc2-0ubuntu1] (ubuntu-desktop)
[20:51] <vorlon> retrying all armhf build failures again (ftbfs + depwait)
[20:51] <vorlon> (picking up xdg-desktop-portal now that it's built)
[20:59] <juliank> riscv64 doesn't even have tests, removing (elpackages there should be a no trainer too
[20:59] <juliank> (*leaf)
[21:54] -queuebot:#ubuntu-release- New binary: libcanberra [amd64] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[21:54] -queuebot:#ubuntu-release- New binary: libcanberra [i386] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[21:54] -queuebot:#ubuntu-release- New binary: libcanberra [s390x] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[21:54] -queuebot:#ubuntu-release- New binary: libcanberra [arm64] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[21:54] -queuebot:#ubuntu-release- New binary: libcanberra [ppc64el] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[21:57] -queuebot:#ubuntu-release- New binary: libcanberra [armhf] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[22:06] -queuebot:#ubuntu-release- New binary: libreoffice [armhf] (noble-proposed/main) [4:24.2.2~rc2-0ubuntu1] (ubuntu-desktop)
[22:20] -queuebot:#ubuntu-release- New: accepted u-boot-s32 [amd64] (noble-proposed) [2022.04-bsp37.0-0ubuntu1]
[22:20] -queuebot:#ubuntu-release- New: accepted u-boot-s32 [armhf] (noble-proposed) [2022.04-bsp37.0-0ubuntu1]
[22:20] -queuebot:#ubuntu-release- New: accepted u-boot-s32 [riscv64] (noble-proposed) [2022.04-bsp37.0-0ubuntu1]
[22:20] -queuebot:#ubuntu-release- New: accepted ubuntukylin-wallpapers [amd64] (noble-proposed) [24.04]
[22:20] -queuebot:#ubuntu-release- New: accepted u-boot-s32 [arm64] (noble-proposed) [2022.04-bsp37.0-0ubuntu1]
[22:20] -queuebot:#ubuntu-release- New: accepted u-boot-s32 [s390x] (noble-proposed) [2022.04-bsp37.0-0ubuntu1]
[22:20] -queuebot:#ubuntu-release- New: accepted u-boot-s32 [ppc64el] (noble-proposed) [2022.04-bsp37.0-0ubuntu1]
[22:21] -queuebot:#ubuntu-release- New: accepted libreoffice [amd64] (noble-proposed) [4:24.2.2~rc2-0ubuntu1]
[22:21] -queuebot:#ubuntu-release- New: accepted libreoffice [armhf] (noble-proposed) [4:24.2.2~rc2-0ubuntu1]
[22:21] -queuebot:#ubuntu-release- New: accepted libreoffice [s390x] (noble-proposed) [4:24.2.2~rc2-0ubuntu1]
[22:21] -queuebot:#ubuntu-release- New: accepted libreoffice [arm64] (noble-proposed) [4:24.2.2~rc2-0ubuntu1]
[22:21] -queuebot:#ubuntu-release- New binary: libcanberra [riscv64] (noble-proposed/main) [0.30-12.2ubuntu1] (i386-whitelist, ubuntu-desktop)
[22:21] -queuebot:#ubuntu-release- New: accepted libreoffice [ppc64el] (noble-proposed) [4:24.2.2~rc2-0ubuntu1]
[22:37] -queuebot:#ubuntu-release- New: accepted libcanberra [amd64] (noble-proposed) [0.30-12.2ubuntu1]
[22:37] -queuebot:#ubuntu-release- New: accepted libcanberra [armhf] (noble-proposed) [0.30-12.2ubuntu1]
[22:37] -queuebot:#ubuntu-release- New: accepted libcanberra [ppc64el] (noble-proposed) [0.30-12.2ubuntu1]
[22:37] -queuebot:#ubuntu-release- New: accepted libcanberra [s390x] (noble-proposed) [0.30-12.2ubuntu1]
[22:37] -queuebot:#ubuntu-release- New: accepted libcanberra [arm64] (noble-proposed) [0.30-12.2ubuntu1]
[22:37] -queuebot:#ubuntu-release- New: accepted libcanberra [riscv64] (noble-proposed) [0.30-12.2ubuntu1]
[22:38] -queuebot:#ubuntu-release- New: accepted libcanberra [i386] (noble-proposed) [0.30-12.2ubuntu1]
[22:52] <vorlon> janus ftbfs because libpcap-dev missing a dependency on libibverbs, sigh
[22:53] <vorlon> lvoytek: ^^ fwiw this seems to be a mismerge of libpcap? libpcap-dev depends on libibverbs-dev but the .pc file is in libpcap0.8-dev
[22:55] <juliank> I'm reviewing any new binaries for additional rebuild potential fwiw
[22:55] <vorlon> also why has the maintainer made the *un*versioned -dev packages transitional :/
[22:55] <juliank> I guess they want to have a libpcap1.0 or so that is going to be a long and winded transition
[22:55] <juliank> :D
[23:42] <vorlon> sssd is probably easy to figure out, if only I could figure out where the actual test harness is
[23:45] <vorlon> ah, 'log-driver'
[23:45] <vorlon> rather, LOG_DRIVER=test-driver
[23:50] <vorlon> argh running the tests directly passes
[23:50] <vorlon> so no, not easy. punting
[23:51] <vorlon> slurmdbd - this is going to be about the mariadbd library that the maintainer tried to insist was unused, isn't it
[23:52] <vorlon> ah but juliank already fixed mariadb so retrying that
[23:59] <vorlon> and sssd of course is hard to remove also


[11:59] <LinDol> hi all
[12:32] <mower> I'm repeatedly getting hash mismatches with md5sum check on ubuntu-gnome-16.04-desktop-amd64.iso. Anybody else finding the same?
[14:13] <mower> I'm repeatedly getting hash mismatches with md5sum check on
[14:13] <mower>         ubuntu-gnome-16.04-desktop-amd64.iso. Anyone else finding the same?